我正在尝试实现一个失物招领数据库。我有两个模型,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