paranitips

Never stop learning! がモットーのゆるふわエンジニアブログ

配列の配列をHashに変換する

pluckで要素を2つ選ぶと配列の配列が生成されますが、このままだとちょっと扱いにくいのでHashにします。

a = User.order(:user_id).pluck(:user_id, :name)
-> [[1, "taro"], [2, "jiro"], ...]

今回、user_idがユニークなのは保証されているので以下でOK。

a = User.order(:user_id).pluck(:user_id, :name)
h = Hash[*a.flatten]
-> {1=>"taro", 2=>"jiro", ...}

参考