查找带文章的标签

时间:2013-03-25 15:25:13

标签: ruby-on-rails-3 tags scope

在博客应用中,我想显示带文章的标签列表。

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

1 个答案:

答案 0 :(得分:1)

使用Ruby / Rails执行此操作的一种方法就是使用它。

Tag.includes(:articles).select { |tag| tag.articles.any? }

.includes确保文章与标记一起加载,这比在迭代每个标记的文章时加载它们更有效。

然后解析数组以仅选择具有相关文章的数组。