如何修复N + 1轨道

时间:2017-08-28 13:24:02

标签: ruby-on-rails ruby select-n-plus-1

我的控制器中有一个特定的inlcudes用于contentType模型。我需要通过预加载来捕获此页面中的所有内容套件。这是一个fetch方法:

def fetch_content_suites
    ContentSuite
      .includes(:tools)
      .where(tools: { content_type_id: content_type.id })
  end

ContentSuite是这里的父类。它有has_many published_tools。在模型中它看起来像:

has_many :tools, -> { distinct }, through: :toolkits, class_name: "Tool", source: :tools

ContentSuite - >工具包 - >工具。 (我通过用于content_suite的工具包创建了一个自定义关联来访问工具)工具和工具包也有很多对很多关联。

这包括非常好的工作,此页面中只有2个查询。浏览/在服务器日志中没有任何项目符号错误。但是,当我试图为它运行规范时,获取:

Bullet::Notification::UnoptimizedQueryError:
       user: damirnurgaliev
       GET /content_suites/85
       USE eager loading detected
         ContentSuite => [:toolkits]
         Add to your finder: :includes => [:toolkits]

这是一个子弹虫还是我的错?谢谢大家。

0 个答案:

没有答案