1


1

私はこれがあなたのオタクのための簡単なものであると確信しています:

たとえば、 "ThisIsMyString"という文字列があり、Rubyを使用して "this_is_my_string"のようにフォーマットしたいとします。

それ、どうやったら出来るの?

マット

4 Answer


5


ActiveSupportにアクセスできる場合(Railsのように、外部で使用可能)、http://api.rubyonrails.org/classes/Inflector.html#M001631 [Inflector module]の `+ underscore +`メソッドを使用できます。

"ClassName".underscore # => class_name


2


クラスString def to_under_score(gsub(/ [A-Z])\ {| p | "_" p.downcase})[1 ..- 1]

"MyTestCase" .to_under_score ⇒ "my_test_case"


1


http://facets.rubyforge.org/[Ruby Facets]はこれを行う機能を持っています:String#underscore。 これは http://github.com/trans/facets/blob/85ca8a9d6c0aeb0a3357f96251ea3e4bc10b0339/lib/core/facets/string/underscore.rb[ソース]です。
defはgsub(/ :: /、 '/')を強調します。 gsub(/([A-Z])([A-Z] [a-z])/、 '\ 1_ \ 2')。 gsub(/([[a-z \ d])([A-Z])/、 '\ 1_ \ 2')。 tr( " - "、 "_") 小文字の終わり


1


_Rails_プロジェクトから_ActiveSupport_にアクセスできる場合、それは同じくらい簡単です。

'activesupport' "ThisIsMyString"が必要です。