37

Rails2.3.2を実行しています。

"Cool"に変換するにはどうすればよい"cool"ですか?私はうまくいくことを知っていますが、、すなわち、または"Cool".downcaseの反対を行うRuby / Railsメソッドはありますか?capitalizeuncapitalizedecapitalize

4

10 に答える 10

117

もあります:

"coolat_cat".camelize(:lower) # => "coolCat"
于 2012-10-26T08:46:07.343 に答える
52

の逆はありませんがcapitalize、自由に独自のロールを作成できます。

class String
  def uncapitalize 
    self[0, 1].downcase + self[1..-1]
  end
end
于 2010-12-17T19:31:11.890 に答える
11

単純な でこれを行うこともできますsub:

"Cool".sub(/^[A-Z]/) {|f| f.downcase }
于 2013-02-01T15:52:04.797 に答える
5

資本化の実際の逆はありませんが、近いと思いますunderscore

"CoolCat".underscore  #=> "cool_cat"
"cool_cat".capitalize #=> "Cool_cat"
"cool_cat".camelize   #=> "CoolCat"

編集: もちろん、ではなくunderscoreの逆です。camelizecapitalize

于 2010-12-17T19:28:15.033 に答える
1
name = "Viru"

name = name.slice(0).downcase + name[1..(name.length)]
于 2016-12-24T11:46:36.260 に答える
1

Ruby Facets を使用する場合は、最初の文字を小文字にすることができます。

https://github.com/rubyworks/facets/blob/master/lib/core/facets/string/uppercase.rb

于 2010-12-17T19:31:12.600 に答える
1

これを試して

'Cool'.sub(/^([A-Z])/) { $1.tr!('[A-Z]', '[a-z]') }

https://apidock.com/ruby/XSD/CodeGen/GenSupport/uncapitalize

于 2017-05-30T13:39:12.513 に答える