Как получить теги *ALL* для объекта activ_as_taggable независимо от его контекста
Обо всем по порядку.
Это НЕ дубликат получения всех тегов для тегируемого объекта - независимо от контекста. Я ищу все теги на конкретном объекте модели. Не для всех возможных тегов в моем приложении rails.
Это НЕ копия списка всех тегов для activ_as_taggable. Я ищу все теги объекта во всех контекстах, а не только в одном контексте.
у меня есть my_car
экземпляр Car
учебный класс. У меня есть много тегов на нем wheel
контекст, на body
контекст, на interior
контекст и некоторые общие теги tags
контекст.
Пока я могу my_car.tags_list
, my_car.wheel_list
, my_car.body_list
, my_car.interior_list
Я не могу сделать что-то вроде my_car.all_tags
так что я могу видеть все теги на my_car
объект независимо от их контекста тегирования.
Как я могу это сделать?
1 ответ
c.base_tags.map(&:name)
Там нет встроенного ярлыка, чтобы получить имена напрямую, но это достаточно коротко:)
Редактировать: base_tags
является ассоциацией, определенной на классах, объявленных как taggable: has_many :base_tags, through: :taggings, source: :tag, class_name: '::ActsAsTaggableOn::Tag'
Источник: https://github.com/mbleigh/acts-as-taggable-on/blob/master/lib/acts_as_taggable_on/taggable.rb