🗺️
【備忘録】Railsで使う書き方④~pluck~
この記事の4回目になります。
map &:to_i
Railsで開発されたアプリケーションで次のようなコードがありました。
sample.rb
Book.all.map(&:to_i)
フォームで送信された本のid
を整数型に変換するコードですね。
これでも良さそうですが調べてみると次の書き方が望ましいようです。
sample.rb
Book.all.pluck(:id)
pluck
上のリンク先にある通り、用途は指定したカラムのレコードの配列を取得することになります。
なぜこちらのメソッドがいいかは次の記事にある通り、plunk
の場合は必要なフィールドだけを読み込むためです。
注意
このメソッドは便利なのですが、注意点があります。
plunk
で返される値は指定したカラムのみとなります。Active Recordの実際のモデルが必要となる場合は使用できません。
また、ループ中にplunk
を実行するとN+!問題が発生します。
この場合はmapメソッドを使用した方がいいでしょう。
Discussion