Я пишу некоторые сложные полиморфные отношения для обработки тегов.
У меня есть модель Tag
и модель Tagging
, которая принадлежит_полиморфному taggable
.
У меня есть модель Item
, которая has_many :taggings, :as => :taggable
, и has_many :tags, :through => :taggings
, так что я могу звонить @item.tags
.
Это все работает нормально.
Я хочу добавить еще одну модель — Store
, которая has_many :items
. Я хочу найти все теги, связанные со всеми товарами в магазине, используя @store.tags
.
Вот что у меня есть:
class Store < AR::Base
has_many :items
has_many :tags, :through => :items, :source => :taggings
Однако это возвращает все taggings
, связанные с элементами в магазине, а не фактические теги.
Как мне указать, что в магазине есть теги has_many, через элементы, через теги?
При необходимости могу опубликовать дополнительную информацию - пытаясь предотвратить информационную перегрузку! Спасибо :)