【问题标题】:Activesupport titlecase() with bang (.titlecase!)?Activesupport titlecase() with bang (.titlecase!)?
【发布时间】:2012-11-04 11:28:20
【问题描述】:

我目前有一个包含客户姓名的字符串,我将其命名为:

@customer_name = @customer_name.titlecase

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

@customer_name.titlecase!

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

【问题讨论】:

标签: ruby-on-rails ruby ruby-on-rails-3 activesupport


【解决方案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"

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2018-01-30
      • 1970-01-01
      • 1970-01-01
      • 2017-07-07
      • 1970-01-01
      • 1970-01-01
      • 2019-04-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多