Rails 5.2+: извлечение ресурса и атрибутов из родительской записи 4 связи - PullRequest
0 голосов
/ 22 марта 2019

Я пытаюсь выяснить, как оптимизировать этот запрос 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() должен загружать эти другие записи, чтобы они сохранялись в памяти и на них можно было ссылаться без дополнительных запросов к БД?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...