复杂的arel查询

时间:2010-09-15 02:13:02

标签: ruby-on-rails activerecord arel

我有一个模型,其中一篇文章可以有多个标签(以及一个标签多个文章)。文章有两个子类,产品和工具包。产品有一个类别,套件没有。

我如何获得某个标签的所有文章(包括套件和产品)(我知道tag.id),并加载了产品的类别(避免使用n + 1)?

1 个答案:

答案 0 :(得分:0)

假设您的关联已经设置(即标记has_many:文章到article_tags等),如果您使用的是Rails 3,则可以在执行查找时使用#includes。将您的belongs_to:类别移动到您的文章类(是的,在语义上可以这样做),然后:

@tag = Tag.first
@tag.articles.includes(:category)

应该有效。

http://guides.rubyonrails.org/active_record_querying.html#eager-loading-associations