Ruby on Rails没有首字母大写

ma1*_*w28 33 ruby ruby-on-rails lowercase capitalize

我正在运行Rails 2.3.2.

我如何转换"Cool""cool"?我知道"Cool".downcase有效,但有没有一个Ruby/Rails方法,相反的capitalize,即,uncapitalizedecapitalize

tfi*_*ach 103

还有:

"coolat_cat".camelize(:lower) # => "coolCat"
Run Code Online (Sandbox Code Playgroud)

  • @Ian Vaughan:ActiveSupport更精确 (3认同)
  • 这确实需要ActiveRecord:http://apidock.com/rails/String/camelize(在阅读问题之后,它确实声明它已经在Rails中了) (2认同)

Jac*_*kin 48

没有相反的capitalize,但你可以随意推出自己的:

class String
  def uncapitalize 
    self[0, 1].downcase + self[1..-1]
  end
end
Run Code Online (Sandbox Code Playgroud)

  • 在标准的Rails应用程序中,将它添加到`/ config/initializers`中的新文件可能是有意义的 (3认同)

JP.*_*JP. 9

你也可以用一个简单的方法做到这一点sub:

"Cool".sub(/^[A-Z]/) {|f| f.downcase }
Run Code Online (Sandbox Code Playgroud)

  • 注意"酷".sub(/ ^ [AZ] /,&:downcase)`就足够了 (4认同)

bou*_*uby 7

str = "Directly to the south"
str[0] = str[0].downcase
puts str
#=> "directly to the south"
Run Code Online (Sandbox Code Playgroud)


iai*_*ain 5

资本化没有真正的逆,但我认为underscore很接近。

"CoolCat".underscore  #=> "cool_cat"
"cool_cat".capitalize #=> "Cool_cat"
"cool_cat".camelize   #=> "CoolCat"
Run Code Online (Sandbox Code Playgroud)

编辑: underscore当然是 的逆camelize,而不是capitalize