0

我目前有一个带有客户名称的字符串,我将其命名为:

@customer_name = @customer_name.titlecase

但这似乎有点啰嗦。当我尝试这样做时:

@customer_name.titlecase!

我得到一个无方法错误。titlecase!存在吗?没有办法做到这一点似乎很奇怪,因为有一个downcase!,例如。

4

2 回答 2

1

您可以在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"
于 2012-11-04T14:42:31.420 回答
0

带或不带 bang 的小写字母是 Ruby 方法。标题大写不是。也许,这就是它没有bang版本的原因。Rails 开发人员可能没有费心去定义 bang 版本。

于 2012-11-04T11:30:32.477 回答