includes

2025/09/04

状況により preloadeager_load のどちらかになる。

preloadで事足りる場合はpreloadと同じ挙動(クエリを分けて実行)をし、無理な場合はeager_loadと同じ挙動(LEFT OUTER JOIN)をする。

※LEFT OUTER JOIN:左テーブルのレコードすべてと、結合条件にマッチする右テーブルのレコードを返す。

注意点としては、associationが複数あるとき、個別に最適化できないことがある。

関連ページ

N+1問題
includesメソッドとpreloadメソッドとeager_loadメソッドの使い分け

バックリンク