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