Я пытаюсь выяснить, как оптимизировать этот запрос SQL, чтобы избежать ситуаций n+1
.
У меня есть некоторые настройки, например:
a has_many b
b has_many c
c has_many d
d has_many e
Я возвращаю коллекцию e
записей, но мне нужнодля отображения a.name
в этой коллекции.
records = E.includes(d: { c: { b: :a }})
Однако, когда я пробую это в rails c
, не похоже, что он включает в себя связанные данные.
rails c
records = E.includes(d: { c: { b: :a }})
records.first.d.c.b.a.name # => executes 4 additional queries to get d,c,b,a
Я думал, includes()
должен загружать эти другие записи, чтобы они сохранялись в памяти и на них можно было ссылаться без дополнительных запросов к БД?