如何在 Rails 中的关联上急切加载关联?

How to eager load association on association in Rails?

我有这样的系统:

class Tag < ActiveRecord::Base
  # attr :name
end

class Article < ActiveRecord::Base
  has_many :tag_associations, dependent:  :destroy
  has_many :tags, through: :tag_associations
end

class Company < ActiveRecord::Base
  has_many :articles
end


class User < ActiveRecord::Base
  belongs_to :company
end

我想这样做:

user.company.articles.includes(:tags).all

在做文章查询的时候那个eager会加载所有的标签吗?如果不是,我如何急切加载每篇文章的标签,以便它不是 N+1 查询,如果我这样做:

company.articles.all.select do |article|
  article.tags.any? do |tag|
    tag.name == 'foo'
  end
end

像这样嵌套预加载。

@company = user.company.includes(articles: :tags).all

@company.articles.all.select do |article|
  article.tags.any? do |tag|
    tag.name == 'foo'
  end
end