私は実行していますRails 2.3.2。
"Cool"
を"cool"
に変換するにはどうすればよいですか? "Cool".downcase
が機能することは知っていますが、capitalize
の反対のRuby/Railsメソッド、つまりuncapitalize
またはdecapitalize
はありますか?
capitalize
の逆行列はありませんが、自由に自分でロールすることができます。
class String
def uncapitalize
self[0, 1].downcase + self[1..-1]
end
end
もあります:
"coolat_cat".camelize(:lower) # => "coolCat"
単純なsub
でこれを行うこともできます。
"Cool".sub(/^[A-Z]/) {|f| f.downcase }
str = "Directly to the south"
str[0] = str[0].downcase
puts str
#=> "directly to the south"
大文字の逆はありませんが、underscore
が近いと思います。
"CoolCat".underscore #=> "cool_cat"
"cool_cat".capitalize #=> "Cool_cat"
"cool_cat".camelize #=> "CoolCat"
編集:underscore
はもちろんcamelize
の逆であり、capitalize
ではありません。
タップを使用できます(1行に収まるように):
"JonSkeet".tap { |e| e[0] = e[0].downcase } # => "jonSkeet"
capitalize
と呼ばれるswapcase
の逆があります。
"Cool Cat".swapcase #=> "cOOL cAT"
これを試して
'Cool'.sub(/^([A-Z])/) { $1.tr!('[A-Z]', '[a-z]') }
https://apidock.com/Ruby/XSD/CodeGen/GenSupport/uncapitalize
Rubyファセットを使用する場合は、最初の文字を小文字にすることができます。
https://github.com/rubyworks/facets/blob/master/lib/core/facets/string/uppercase.rb
name = "Viru"
name = name.slice(0).downcase + name[1..(name.length)]