Как починить рельсы 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]
Это пуля или моя ошибка? Спасибо всем.