こんにちは!
今回はRailsで特定のカラムのデータを配列で取り出す方法(pluck)についてまとめます。
やりたいこと
- DBから特定のカラムの要素を取り出したい
pluck
メソッド
- 指定したカラム名の値を取り出せる
使用例
# Itemモデルからname列を取得 Item.pluck(:name) => [ "りんご", "バナナ", "みかん"] # Itemモデルからname, price列を取得 Item.pluck(:name, :price) => [["りんご", 300], ["バナナ", 200], ["みかん", 400]]
解説
- ポイントはSQLの検索する幅が狭いこと
# pluckの代わりにallを使用した場合 Item.all.map(&:name) => [ "りんご", "バナナ", "みかん"]
- pluckを使用した場合と結果は同じだが、SQLクエリの内容が異なる
メソッド | SQLクエリ |
---|---|
pluck | SELECT "Items.name" from "Item" |
all | SELECT "Items.*" from "Item" |
- pluckの方が取得するカラムが少なく高速
おわりに
今回はRailsで特定のカラムのデータを配列で取り出す方法(pluck)についてまとめました。Railsには初めて見るメソッドがたくさんあるので日々覚えていきたいと思います。
68/100