三种型号:
User
List
Item
一个User
可以有很多Lists
,一个List
可以有很多Items
。每个都List
可以Item
由 ANY 添加User
。例如,这意味着您可以创建一个列表,我可以向其中添加项目。说得通?我们继续吧。
我希望能够在任何时间点找到Items
由 X 创建的所有内容。User
class User < ActiveRecord::Base
has_many :lists
has_many :items
end
class List < ActiveRecord::Base
belongs_to :user
has_many :items
end
class Item < ActiveRecord::Base
belongs_to :list
belongs_to :user
end
我不喜欢这个。它有一种时髦的气味,但我无法将手指放在它上面。我觉得应该有更好的东西。创建新的时Item
,我必须编写如下所示的内容:
list = List.find(params[:list_id])
@item = list.items.new(params[:item])
user = User.first
@item.user = user
@item.save!
那么,我错过了什么?我的关系错了吗(很可能)?告诉我!:)