設定例
たとえば user 対 books が関連している場合、
rails_admin.rb
に以下のように設定
RailsAdmin.config do |config|
...
config.model 'User' do
configure :books do
eager_load true
end
end
ページ閲覧で発行されるSQLクエリの例
RailsAdminの設定は eager load という名前だが、 Railsの eager load ではなく preaload 的なクエリが発行されていた
SELECT `users`.* FROM `users` ORDER BY users.id desc LIMIT 20 OFFSET 0
SELECT `books`.* FROM `books` WHERE `books`.`user_id` IN (65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 146)
Rails の eager load だとデータ量によっては逆に負荷が高まってしまうと思ったが、preload してくれるなら安心かもしれない
場合によってRails の eager load クエリになるかどうかの検証はしていない
公式
Eager load
Associations can be configured to be eager-loaded to prevent N+1 queries. belongs_to associations are eager-loaded by default, but you can configure additional eager-loads like:
チャットメンバー募集
何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。
プロフィール・経歴