Hyurakuのエンジニア日誌

SE出身Webエンジニアのブログ

特定のカラムのみを取得できるpluckを振り返る。#7

任意のカラムの配列を取得メソッドのひとつであるpluckについて振り返る。

1. plunk

公式リファレンスより参照。

説明:
任意のカラムの配列を取得する

使い方:
モデル.pluck(カラム名)

2. 実際の使用方法

もしもpluckを使わなかったら次のように書いていた。

> User.all.each { |user|
  p user.name
}
"Hogehoge"
"hugahuga"
=> [#<User id: 1, name: "Hogehoge">,#<User id: 2, name: "hugahuga">]

しかしこのコードだとUser.allを無駄に呼び出している。 それをpluckを使って書き換える。

> p User.pluck('name')
SELECT "users"."name" FROM "users"
=> ["Hogehoge","hugahuga"]

pluckを使用するとコードを短くかけるし、なによりUserのnameカラムだけを呼び出しているので、 効率よく取得できる。