ホーム DoRuby findをする際にincludeを指定するとselectが無効になる

findをする際にincludeを指定するとselectが無効になる

この記事はアピリッツの技術ブログ「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で確認)

記事を共有

最近人気な記事