Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 两个模型之间有许多关系_Ruby On Rails_Ruby On Rails 3_Activerecord - Fatal编程技术网

Ruby on rails 两个模型之间有许多关系

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_和_-belies_-to_-many与联接表列表_用户的关系负责。我正在尝试通过has_many:through制作收藏夹,但它不起作用:

user.rb:

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是一个很好的解决这种情况的打包解决方案。