この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。
ActiveRecord(以下AR)のバージョンが低いとfindでincludeとselectの併用ができません。
※確認バージョン:1.14.4
下記findを実行するとidだけの結果を取得することができます。
Hoge.find(:all, :select => "id")
ただ古いARでincludeオプションを含めて実行するとselectが効きません。
Hoge.find(:all, :select => "id", :include => :foo)
対応策としてはincludeの代わりにjoinを使うことで回避をすることはできます。
冗長になってしまいますが。
ARのバージョンが新しければ問題無く動作します(2.1で確認)