7
Help us understand the problem. What are the problem?

posted at

updated at

Rails | ハッシュのキーを全てシンボルから文字列に変える ( stringify_keys / deep_stringify_keys )

表題のとおり。

{ 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オープンチャットもご利用ください。

メンター受付

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
7
Help us understand the problem. What are the problem?