遇到has_many问题:通过关联

时间:2011-06-18 02:01:45

标签: ruby-on-rails ruby-on-rails-3

我终于想出了让用户通过联合模型保存收藏夹的方法。这是我的用户模型:

has_many :pictures, :through => :favorites

如果我想获取用户收藏的图片,我可以致电

@pictures = user.pictures

最初,这会显示所有用户的上传而不是收藏,但我仍然希望能够显示所有上传内容。我希望能够为所有上传调用@ user.pictures,并为他们的收藏调用@ user.favorite_pictures。我试过这个,但它不起作用:

has_many :pictures
has_many :favorites
has_many :pictures, :through => :favorites, :as => :favorite_pictures

### @user.favorite_pictures produces an error

提前致谢

1 个答案:

答案 0 :(得分:4)

错误在于你的第3行,

has_many :pictures, :through => :favorites, :as => :favorite_pictures

您已定义:pictures:as选项仅用于多态关联。试试这个:

has_many :favorite_pictures, :through => :favorites, :source => :picture