首页 > 解决方案 > 无论上下文如何,如何在acts_as_taggable对象上获取*ALL*标签

问题描述

第一件事。

不是Get all tags on taggable object的重复- 无论上下文。我正在寻找特定模型对象上的所有标签。不适用于我整个 rails 应用程序中的所有可能标签。

不是列出acts_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而不管它们的标签上下文如何。


我怎么做?

标签: ruby-on-railsrubyruby-on-rails-4acts-as-taggable-onacts-as-taggable

解决方案


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


推荐阅读