0

即使在阅读了http://guides.rubyonrails.org/association_basics.html和一些类似的问题之后,我仍然无法想象我需要包括哪些关联。

这是我到目前为止所拥有的:

用户

has_one :list

清单

belongs_to :user  
has_many :list_items

列表项

belongs_to :list

问题是我需要具有允许用户查看其他人的列表并将他们的任何 list_items 添加到他/她自己的列表的功能。意思是 list_item 可以belong_to_many :lists

我是否需要另一种模式来促进has_many :through关系,还是我想多了?

4

1 回答 1

0

是的,你想多了。你不需要has_many :through。如果user只有一个list。他可以简单地list_item添加list。为什么需要has_many :through

向用户添加list_item

  def add_list_item_to_user(user, list_item)
    user.list.list_items << list_item
  end

就是这样。

如果您想访问list_items使用user,您可以执行以下操作:

用户型号:

  has_many :list_items, :through => :list

形成这个你可以list_items访问user

   user.list_items
   user.list_items << list_item

你们有has_one亲戚关系,我想你们不用太担心through。如果你真的想用你可以做到。

于 2013-02-17T10:22:54.727 回答