サーバー側をRuby on Railsで書いて、フロント側をJavaScriptで書いてると命名規則の問題でスネークケースを大文字にしたり、キャメルケースへ変換した時があった。
例えば、以下のハッシュがあったとします。
qiita.rb
[10] pry(main)> hoge = {'user_id' => 1, 'user_name'=> '太郎'}
=> {"user_id"=>1, "user_name"=>"太郎"}
うわー。このハッシュのキーをキャメルケースにしてーwww
大文字にしてーwww
ってことありますよね。
APIを使ってフロント側にこのハッシュ値を送りたいが、フロント側ではキャメルケース使っていた場合とか。
んで、肝心なやり方ですが、transform_keysってのがrailsには用意されていて、便利でした。
使うとこんな感じ。
大文字パターン
qiita.rb
[13] pry(main)> hoge.transform_keys { |k| k.upcase }
=> {"USER_ID"=>1, "USER_NAME"=>"太郎"}
キャメルケースパターン
qiita.rb
[12] pry(main)> hoge.transform_keys{|k| k.camelize}
=> {"UserId"=>1, "UserName"=>"太郎"}
qiita.rb
[14] pry(main)> hoge.transform_keys{|k| k.camelize(:lower)}
=> {"userId"=>1, "userName"=>"太郎"}
文字列に対してcamelizeを実行するだけでキャメルケースにしてくれのも便利。