簡體   English   中英

使用acts_as_taggable_on將“選擇標簽”添加到ActiveRecord查詢中

[英]Add “select tags” to ActiveRecord query with acts_as_taggable_on

我有一個ActiveRecord查詢,例如

Post.where("likes > 3")

我想從act_as_taggable_on獲取標簽以在結果中發送Post。 例如類似

Post.select("posts.*, tag_list").where("likes > 3")

顯然這是行不通的,需要進行大量的聯接才能從acts_as_taggable_on獲取與該帖子相關的標簽。 act_as_taggable_on是否提供“選擇”標簽的任何方式?

我可以通過以下方式訪問標簽:

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

但這會導致很多查詢,因為有很多帖子。 有沒有更好的辦法?

我找到了使其工作的一種方法,但是我希望能將其內置到acts_as_taggable_on中。 也許有更好的方法,但這似乎可行:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM