Ruby でキャメルケースをアンダースコアケースに変換する 質問する

Ruby でキャメルケースをアンダースコアケースに変換する 質問する

キャメルケースの文字列をアンダースコアで区切られた文字列に変換する準備済みの関数はありますか?

次のようなものがほしいです:

"CamelCaseString".to_underscore      

「camel_case_string」を返します。

...

ベストアンサー1

RailsのActiveSupport次のようにして文字列にアンダースコアを追加します。

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"

おすすめ記事