Rubyでキャメルケースをアンダースコアケースに変換する
概要
キャメルケースの文字列をアンダースコアで区切られた文字列に変換する既製の関数はありますか?
次のようなものが欲しいです:
"CamelCaseString".to_underscore
「camel_case_string」を返します。
…
解決策
Railsのアクティブサポート 以下を使用して文字列にアンダースコアを追加します。
class String
def underscore
self.gsub(/::/, '/').
gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
gsub(/([a-z\d])([A-Z])/,'\1_\2').
tr("-", "_").
downcase
end
end
そうすれば、楽しいことができるようになります。
"CamelCase".underscore
=> "camel_case"