Как починить рельсы N+1

У меня есть определенные inlcudes в моем контроллере для модели contentType. Мне нужно поймать все комплекты контента на этой странице с предварительной загрузкой. Это метод выборки для него:

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

ContentSuite является родительским классом здесь. Это has_many опубликовано_ инструменты. В модели это выглядит так:

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 ответов

Другие вопросы по тегам