pluckメソッドとは
pluckはテーブルからデータを取り出すメソッドの一つです。
引数にカラムを指定すると、そのカラムの値を全て配列で返してくれます。
また、カラムは複数指定することができます。
モデル名.pluck(カラム名)
参考例
まずは、Userテーブルからnameカラムの値を全て取り出します。
[12] pry(main)> User.pluck(:name)
(1.5ms) SELECT `users`.`name` FROM `users`
=> ["田中", "田中", "加藤", "山田", "高橋"]
すると、nameカラムの全ての値が配列で返されていることがわかります。
次に、ageカラムを追加して複数指定した場合を見てみましょう。
[13] pry(main)> User.pluck(:name,:age)
(1.7ms) SELECT `users`.`name`, `users`.`age` FROM `users`
=> [["田中", 17], ["田中", 42], ["加藤", 23], ["山田", 23], ["高橋", 23]]
上記のように、それぞれが配列の中の配列という形で返されていることがわかります。
配列を外して表示したい場合
pluckは配列で値が返されるため、配列以外で表示したい場合はjoinメソッドを繋げてあげます。
今回は文字の間隔を空けるように、区切り文字を記述します。
[18] pry(main)> User.pluck(:name).join(" ")
(1.8ms) SELECT `users`.`name` FROM `users`
=> "田中 田中 加藤 山田 高橋"
すると上記のように配列ではない形で返されました。
この例のように、任意の区切り文字を指定してあげると、配列以外の形で値が返ってきます。