Я не уверен, что заголовок моего вопроса действительно имеет смысл. Допустим, у меня есть две модели basi c: Artwork и Artiste. У художественного произведения один художник.
Когда я показываю свой список иллюстраций со следующим erb:
<% artworks.each do |artwork| %>
<p><%= artwork.title %></p>
<p><%= artwork.artiste.name %></p>
<% end %>
, я вижу, что Rails выполняет запрос к БД для каждого графического произведения, чтобы получить имя художника:
Журнал Puma:
CACHE Artiste Load (0.0ms) SELECT "artistes".* FROM "artistes" WHERE "artistes"."id" = $1 LIMIT $2 [["id", 1], ["LIMIT", 1]]
↳ app/views/artworks/index.html.erb:55
CACHE Artiste Load (0.0ms) SELECT "artistes".* FROM "artistes" WHERE "artistes"."id" = $1 LIMIT $2 [["id", 5], ["LIMIT", 1]]
↳ app/views/artworks/index.html.erb:55
CACHE Artiste Load (0.0ms) SELECT "artistes".* FROM "artistes" WHERE "artistes"."id" = $1 LIMIT $2 [["id", 8], ["LIMIT", 1]]
↳ app/views/artworks/index.html.erb:55
CACHE Artiste Load (0.0ms) SELECT "artistes".* FROM "artistes" WHERE "artistes"."id" = $1 LIMIT $2 [["id", 6], ["LIMIT", 1]]
↳ app/views/artworks/index.html.erb:55
Думаю, это нормально для нескольких десятков произведений искусства, но не настолько, если этот стол вырастет ...
Есть ли чистое решение для предотвращения всех этих запросов? Заранее большое спасибо за вашу помощь.