何回もやり方を忘れるので備忘録代わりに。
任意のカラムの値だけを利用する場合、pluckは検索も取得も早いのでよく使うのですが、
pluckで取れた値は、その後少し使いづらいので、出来ればハッシュ形式にしたいと言った時の書き方。
例えば、
@user = User.pluck(:id,:name)
で、取得した値は
pry: @user
=> [[1,abc], [2,cde], [3,efg], ...]
となっているので、少し使いづらい。出来れば idをキーにしたハッシュにしたい、と言った時。
userarray = User.pluck(:id,:name)
@userhash = Hash[*userarray.flatten]
とすると
pry: @userhash
=> {1=>abc,2=>cde,3=>efg,・・・}
となってくれて、これで、 ' @userhash[2] ' とかで名前を取り出す等が可能です。
<追記>
コメントで .to_hでarrayをハッシュに変換出来るとのご指摘頂きました。
こんな複雑な書き方せずとも、 userarray.to_h
で望む結果が出てきました。