在博客应用中,我想显示带文章的标签列表。
class Article < AR::B
has_and_belongs_to_many :tags
end
class Tag < AR::B
has_and_belongs_to_many :articles
end
标记范围会是什么样的?
Tag.joins(:articles) ... # should return tags associated to at least 1 article
答案 0 :(得分:1)
使用Ruby / Rails执行此操作的一种方法就是使用它。
Tag.includes(:articles).select { |tag| tag.articles.any? }
.includes
确保文章与标记一起加载,这比在迭代每个标记的文章时加载它们更有效。
然后解析数组以仅选择具有相关文章的数组。