現在、タイトルケースに使用している顧客名の文字列があります。
@customer_name = @customer_name.titlecase
しかし、これは少し長すぎるようです。私がやろうとすると:
@customer_name.titlecase!
メソッドなしエラーが発生します。titlecase!
存在しますか?downcase!
たとえば、があるので、これを行う方法がないのは奇妙に思えます。
現在、タイトルケースに使用している顧客名の文字列があります。
@customer_name = @customer_name.titlecase
しかし、これは少し長すぎるようです。私がやろうとすると:
@customer_name.titlecase!
メソッドなしエラーが発生します。titlecase!
存在しますか?downcase!
たとえば、があるので、これを行う方法がないのは奇妙に思えます。
http://as.rubyonrails.org/classes/ActiveSupport/CoreExtensions/String/Inflections.html#M000381で、すべてのタイトルケースがこれであることを確認できます(bang メソッドがないことにも注意してください)。
def titleize
Inflector.titleize(self)
end
したがって、これを実装したい場合は
class String
def titleize!
replace titleize
end
end
それで:
>> the_string = "oh hai"
=> "oh hai"
>> the_string.titleize!
=> "Oh Hai"
>> the_string
=> "Oh Hai"
! の有無にかかわらず、小文字は Ruby メソッドです。タイトルケースはありません。おそらく、それが bang バージョンがない理由です。Rails 開発者は、おそらく bang バージョンを定義することを気にしませんでした。