三种型号:
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!
那么,我错过了什么?我的关系错了吗(很可能)?告诉我!:)