1

在博客应用程序上,我想显示带有文章的标签列表。

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
4

1 回答 1

1

用 Ruby/Rails 做到这一点的一种方法是这个。

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

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

然后解析该数组以仅选择与文章相关联的那些。

于 2013-03-25T19:40:49.067 回答