表題のとおり。
{ 'a' => 1, 'b' => 2, 'c' => 3 }.symbolize_keys
# => {:a=>1, :b=>2, :c=>3}
ハッシュの階層が深い時
deep_symbolize_keys
なら、階層を問わず、ぜんぶシンボルに変えてくれる。( Rails4 )
{ 'a' => 1, 'b' => 2, 'c' => { 'd' => 3 } }.deep_symbolize_keys
# => {:a=>1, :b=>2, :c=>{:d=>3}}
すごいぞ deep_symbolize_keys
deep_symbolize_keys
なら、たとえば途中に配列があっても気にしない。
{'a' => 1, 'b' => 2, 'c' => [ {'d' => [ { 'e' => 3 } ] } ] }.deep_symbolize_keys
# => {:a=>1, :b=>2, :c=>[{:d=>[{:e=>3}]}]}
補足
- 破壊的メソッドもある。 (
symbolize_keys
/deep_symbolize_keys!
) - 「Rails / すべて / シンボルに」でググってもヒットしなかったので投稿。
環境
- Rails 4.2.6
チャットメンバー募集
何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。
メンター受付