4
我正在寻找关于如何最好地为我目前正在处理的应用程序构建“监视列表”的建议。实现“监视列表”关系的Rails/ActiveRecord
型号如下:
# user.rb
has_many :items
# item.rb
belongs_to :user
我现在需要增加一个观察列表,用户可以在喜欢的某些项目,没有取得所有权。
我已经试过如下:
# user.rb
has_many :items
has_many :watches
has_many :items, :through => :watches
# watch.rb (user_id:integer, item_id:integer)
belongs_to :user
belongs_to :item
# item.rb (user_id:integer)
belongs_to :user
has_many :watches
has_many :users, :through => :watches # as => :watchers
这个排序的作品,但并没有完全得到预期的回应。我遇到了一个AssosciationTypeMismatch: Watch expected, got Item
错误,这让我觉得我的模型设置错了。
理想情况下,我希望能够像user.watches << item
一样开始观看项目,item.watchers
可以检索观看该项目的人员集合。
任何人都可以在这里提供一些建议吗?
完美。谢谢! – Jeriko 2010-10-21 15:57:04
这很有帮助,谢谢! – Levin 2014-12-17 14:46:38