【发布时间】:2013-10-07 07:37:43
【问题描述】:
我正在尝试实现失物招领数据库。
我有两个模型,User 和 Item。用户可以丢失物品并找到物品。并且一个项目可以有一个找到它的用户和丢失它的用户。我希望能够通过不同的名称引用相同的模型,例如
user.found_items, user.lost_items, item.founder, item.losser
现在我可以做到:
user.founds、user.losts 和 user.items 将从丢失中返回 items
class User < ActiveRecord::Base
has_many :founds
has_many :items, through: :founds
has_many :losts
has_many :items, through: :losts
end
class Lost < ActiveRecord::Base
belongs_to :user
belongs_to :item
end
class Found < ActiveRecord::Base
belongs_to :user
belongs_to :item
end
class Item < ActiveRecord::Base
has_one :found
has_one :user, through: :found
has_one :lost
has_one :user, through: :lost
end
【问题讨论】:
标签: postgresql associations ruby-on-rails-4