これはあなたのオタクにとって簡単なものだと確信しています:
文字列「ThisIsMyString」があり、Ruby を使用して「this_is_my_string」のようにフォーマットしたいとします。
それ、どうやったら出来るの?
マット
これはあなたのオタクにとって簡単なものだと確信しています:
文字列「ThisIsMyString」があり、Ruby を使用して「this_is_my_string」のようにフォーマットしたいとします。
それ、どうやったら出来るの?
マット
ActiveSupport にアクセスできる場合 (Rails のように、外部から使用可能)、Inflectorモジュールunderscore
のメソッドを使用できます。
"ClassName".underscore # => class_name
class String def to_under_score (gsub(/[AZ]) { |p| "_" + p.downcase })[1..-1] end end
"MyTestCase".to_under_score => "my_test_case"
Ruby Facetsには、これを行う関数があります: String#underscore. そのソースは次のとおりです。
def underscore
gsub(/::/, '/').
gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
gsub(/([a-z\d])([A-Z])/,'\1_\2').
tr("-", "_").
downcase
end
RailsプロジェクトからActiveSupportにアクセスできる場合は、次のように簡単です。
require 'activesupport'
"ThisIsMyString".underscore