Ruby on rails 加上「;选择标签";使用acts_as_taggable_打开的ActiveRecord查询

Ruby on rails 加上「;选择标签";使用acts_as_taggable_打开的ActiveRecord查询,ruby-on-rails,ruby,activerecord,acts-as-taggable-on,Ruby On Rails,Ruby,Activerecord,Acts As Taggable On,我有一个ActiveRecord查询,如 Post.where("likes > 3") 我想从acts_as_taggable_那里得到标签,以便在我的结果中发布。比如说 Post.select("posts.*, tag_list").where("likes > 3") 显然这是行不通的,需要大量的连接才能从acts_as_taggable_上获取与文章相关的标记。作为标记的操作是否提供了“选择”标记的方法 我可以通过以下方式访问标签: Post.where("likes

我有一个ActiveRecord查询,如

Post.where("likes > 3")
我想从acts_as_taggable_那里得到标签,以便在我的结果中发布。比如说

Post.select("posts.*, tag_list").where("likes > 3")
显然这是行不通的,需要大量的连接才能从acts_as_taggable_上获取与文章相关的标记。作为标记的操作是否提供了“选择”标记的方法

我可以通过以下方式访问标签:

Post.where("likes > 3").each do |p|
    puts p.to_json
    puts p.tag_list.to_json
end

但是这会导致很多查询,因为有很多帖子。有更好的方法吗?

我已经找到了一种让它发挥作用的方法,但我希望有一种更好的方法,内置于acts\u as\u taggable\u on中。也许有更好的方法,但这似乎有效:

Post.select("posts.*, tags.name as tag")
    .where("likes > 3")
    .joins(:taggings)
    .joins("LEFT OUTER JOIN tags on tags.id = taggings.tag_id")