西小倉事典
mindia西小倉事典見出し語

ActiveRecordのincludesメソッド

西小倉パンデイロ · 2013-09-17 更新

Parentモデルにbelongs_toしてるChildモデルがあったとして

Child.where(cond).limit(10).each{|hoge|hoge.parent}

とすると

 SELECT * FROM `parents` where... limit 1

みたいなSQL10実行されてしまう。
これにincludeを使って

Child.where(cond).limit(10).includes(:parent)each{|hoge|hoge.parent}

とするだけで

SELECT * FROM `parents` WHERE `parents`.`id` IN ([親のidコンマ区切り])

という1つのSQLに集約される

関連する見出し語