Я ищу совет о том, как лучше всего создать «список наблюдения» для приложения, над которым я сейчас работаю.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
Это было полезно, спасибо! – Levin