如何在 acts_as_taggable 对象上获取 *ALL* 标签而不考虑其上下文

How to get *ALL* tags on an acts_as_taggable object regardless of its contexts

要事第一。

不是 的副本。我正在寻找特定模型对象上的所有标签。不适用于我整个 rails 应用程序中所有可能的标签。

不是 Listing all tags for an acts_as_taggable 的副本。我在所有上下文中查找对象上的所有标记 - 而不仅仅是在单个上下文中。


我有一个 Car class 的 my_car 实例。我在 wheel 上下文、body 上下文、interior 上下文和 tags 上下文上有很多标签。

虽然我可以 my_car.tags_listmy_car.wheel_listmy_car.body_listmy_car.interior_list,但我无法做 my_car.all_tags 这样的事情,所以我可以看到 ALL my_car 对象上的标签,无论它们的标签上下文如何。


我该怎么做?

c.base_tags.map(&:name)

没有直接获取名称的内置快捷方式,但这已经够短了:)

编辑:base_tags 是在 类 上定义的关联,声明为可标记: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