不确定which association最符合我的要求。基本上它是一个待办事项列表。该列表是一项任务,该任务有很多用户。
即:挖一个洞并种下一些种子。挖洞需要两个或更多人。 Jim和Jo正在挖洞,Jo将种下种子。所以要完成两个列表,第一个是两个用户,另一个是一个。如果需要,两个用户都可以完成两个列表。
如果我不清楚,todo上的每个任务(列表)都可以由任何用户完成。我很难看到在用户表上放置list_id
的位置。这是不可能的,因为该用户可以同时执行另一个(列表)。我不确定through: :association
如何在这里发挥作用。
User.first.lists #= []
Todo.first.lists.first.users #= []
我没有得到任何东西,因为user_id
需要去某个地方。
答案 0 :(得分:2)
如果我没弄错的话,听起来你需要一个联接表。然后说明你的记录有关系:通过连接表。
实施例
你有一个名为user_lists
的连接表,它将包含3个数据(id,user_id,list_id)
因此,每次用户有一个列表时,您都会在此表上创建一条记录。
然后在您的用户模型中
class User < ActiveRecord::Base
has_many :lists, :through => :user_lists
end
如果我已正确理解您的设置,那么我希望这有帮助,如果不让我知道。
您可以在此处详细了解关联http://guides.rubyonrails.org/association_basics.html