Ruby on rails:用空间替换驼峰盒

时间:2014-02-06 11:30:10

标签: ruby-on-rails ruby

我想将camelCase等骆驼案词转换为CAMEL CASE。我尝试了here提到的方法。

@q = params[:promo].underscore.humanize.upcase

但是这使得我CAMELCASE而不是CAMEL CASE使用相同的结果:

@q = params[:promo].gsub(/[a-zA-Z](?=[A-Z])/, '\0 ').downcase

编辑:网址包含/camelCase,但在使用params [:promo]时,骆驼案例未被保留且@q为camelcase

4 个答案:

答案 0 :(得分:20)

»  'camelCase'.underscore.humanize.upcase
=> "CAMEL CASE"

答案 1 :(得分:7)

如果有人需要像CamelCase'骆驼案例'可以使用

'CamelCase'.underscore.split('_').collect{|c| c.capitalize}.join(' ')

或者' CamelCase'骆驼案件'

'CamelCase'.underscore.split('_').join(' ') 

或者' CamelCase'骆驼案件'

'CamelCase'.underscore.humanize

N.B:这个解决方案是特定于rails的,如果没有ActiveSupport,它在ruby中不起作用。

答案 2 :(得分:3)

只需将自己的上部字符替换为自身前置空格,然后将所有内容都设为大写

'camelCase'.gsub(/[A-Z]/, ' \0').upcase

答案 3 :(得分:0)

'camelCase'.split(/(?=[A-Z])/).join(' ').upcase