我有一个模型,其中一篇文章可以有多个标签(以及一个标签多个文章)。文章有两个子类,产品和工具包。产品有一个类别,套件没有。
我如何获得某个标签的所有文章(包括套件和产品)(我知道tag.id),并加载了产品的类别(避免使用n + 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