コード日進月歩

しんくうの技術的な小話、メモ、つれづれ、など

ActiveRecordのpluckはカラム絞り込みを行う

タイトルが全ての雑記レベルのメモですが、意外と知られていないっぽいので書いてみる。

環境

rails (5.2.0)

こんなモデルがあったときに

# == Schema Information
#
# Table name: users
#
#  id         :bigint(8)        not null, primary key
#  name       :string(255)
#  created_at :datetime         not null
#  updated_at :datetime         not null
#

class User < ApplicationRecord
end

こんな記述をすると

User.all.pluck(:id,:name)

こんなSQLになる

SELECT `users`.`id`, `users`.`name` FROM `users`

一般論で言われる、不要なカラムは読み込むな、というのをちゃんとやってくれるので頭の片隅にいれておくと良いぐらいの話。

あとがき

これぐらい単純なテーブルだとどうってこと無いんですが、正規化されていないテーブルとかに対してなにかするときには結構響いてくるはずなので、カラム絞る系の記述はちょっと他のも頭に入れておきたいなという所存

参考