我目前有一个带有客户名称的字符串,我将其命名为:
@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上看到所有 titlecase 所做的就是这个(还要注意没有 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"
带或不带 bang 的小写字母是 Ruby 方法。标题大写不是。也许,这就是它没有bang版本的原因。Rails 开发人员可能没有费心去定义 bang 版本。