Ruby on rails 两个模型之间有许多关系
用户可以通过三种方式连接到列表:他可以拥有它(即他创建了它),他可以是一个小组成员(他定期对它进行投票),或者他可以喜欢它。我已经处理了前两个案例,但第三个(“最爱”)无法正常工作。所有权由与列表模型上的外键“所有者”有许多关系的人负责。小组成员由一个has_和_-belies_-to_-many与联接表列表_用户的关系负责。我正在尝试通过has_many:through制作收藏夹,但它不起作用: user.rb:Ruby on rails 两个模型之间有许多关系,ruby-on-rails,ruby-on-rails-3,activerecord,Ruby On Rails,Ruby On Rails 3,Activerecord,用户可以通过三种方式连接到列表:他可以拥有它(即他创建了它),他可以是一个小组成员(他定期对它进行投票),或者他可以喜欢它。我已经处理了前两个案例,但第三个(“最爱”)无法正常工作。所有权由与列表模型上的外键“所有者”有许多关系的人负责。小组成员由一个has_和_-belies_-to_-many与联接表列表_用户的关系负责。我正在尝试通过has_many:through制作收藏夹,但它不起作用: user.rb: has_many :owned_lists, :class_name =>
has_many :owned_lists, :class_name => "List", :foreign_key=> :owner # this is for the owner/list relationship
has_and_belongs_to_many :lists # for the normal panelist / list relationship
has_many :favorites
has_many :favorite_lists, :through=> :favorites, :class_name => "List"
list.rb:
belongs_to :owner, :class_name=> "User", :foreign_key => :owner
has_many :favoriters, :through=> :favorites, :class_name => "User"
has_and_belongs_to_many :users
收藏夹.rb
class Favorite < ActiveRecord::Base
belongs_to :list
belongs_to :user
end
class收藏夹
如果一切顺利,我希望能够创建user.favorite_列表并获得包含一个或多个列表的关联。现在,我得到了“ActiveRecord::HasManyThroughSourceAssociationNotFoundError:在模型收藏夹中找不到源关联:收藏夹列表或:收藏夹列表。请尝试“has\u many:收藏夹列表,:through=>:favorites,:source=>”
如果您能提供任何帮助,我们将不胜感激。您需要指定
的源代码:
has_many :favorites
has_many :favorite_lists, :through=> :favorites, :class_name => "List", :source => :list
我不确定,但我认为:class_name
在这里是不必要的你能描述一下“不工作”在这里的意思吗?我知道它不能回答你的问题,但rolify gem是一个很好的解决这种情况的打包解决方案。