我的模型类是这样描述的:
class MyModel < ApplicationRecord
acts_as_taggable_on :tags
end
如何获取此模型类的任何示例使用的所有tags
?
我试过:
MyModel.tags_on(:tags).pluck(:name)
它可以工作,但它会生成一个查询,其中包括我的模型的所有示例的ID:
SELECT tags.* FROM `tags` JOIN (SELECT `taggings`.`tag_id` FROM `taggings` WHERE (taggings.taggable_type = 'MyModel') AND (taggings.taggable_id IN ( **[ALL THE IDS]** ) GROUP BY `taggings`.`tag_id`) AS taggings ON taggings.tag_id = tags.id
同:
MyModel.all_tags.pluck(:name)
我也试过:
ActsAsTaggableOn::Tag.for_context(:tags).pluck(:name)
但它返回所有模型类的上下文中的所有tags
,而不仅仅是MyModel
类
1条答案
按热度按时间e0bqpujr1#
我的第一个想法是只取一个返回所有标签的查询,并将其细化为
taggable_type
: