Ruby on rails RubyonRails:用空格替换camel case

Ruby on rails RubyonRails:用空格替换camel case,ruby-on-rails,ruby,Ruby On Rails,Ruby,我想将类似于camelCase的驼峰大小写单词转换为camelCase。我尝试了上述方法 但这给了我CAMELCASE而不是CAMELCASE相同的使用结果: @q = params[:promo].gsub(/[a-zA-Z](?=[A-Z])/, '\0 ').downcase 编辑:url包含/camelCase,但在使用params[:promo]时,camelCase不会保留,@q是camelCase只需将大写字符先替换为空格,然后将所有字符都大写即可 'camelCase'.gsu

我想将类似于
camelCase
的驼峰大小写单词转换为
camelCase
。我尝试了上述方法

但这给了我
CAMELCASE
而不是
CAMELCASE
相同的使用结果:

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

编辑:url包含
/camelCase
,但在使用params[:promo]时,camelCase不会保留,@q是
camelCase

只需将大写字符先替换为空格,然后将所有字符都大写即可

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

如果任何人需要类似“CamelCase”的东西,可以使用“CamelCase”

'CamelCase'.underscore.split('_').collect{|c| c.capitalize}.join(' ')
或“骆驼案”改为“骆驼案”

'CamelCase'.underscore.split('_').join(' ') 
或“骆驼案”改为“骆驼案”

'CamelCase'.underscore.humanize

注意:这个解决方案是特定于rails的,如果没有ActiveSupport,它在ruby中无法工作。

您的方法是正确的,并在我的控制台中返回正确的结果。你确定你的
参数[:promo]
camelCase
,而不是
camelCase
?@BroiSatse:你是对的,url有
/camelCase
。但是在使用
params[:promo]
时,它会变成
camelcase
。它确实有效。顺便说一句,Regex:)您能检查给定请求的url头吗
request.original_url
@BroiSatse:它显示
camelCase
Uri字符串必须是带破折号和下划线的格式(不带任何类型的cammelcase)以及它的SEO well格式
'camelCase'。下划线.titleize也返回“camelCase”-比您的建议简单得多
'CamelCase'.underscore.split('_').collect{|c| c.capitalize}.join(' ')
'CamelCase'.underscore.split('_').join(' ') 
'CamelCase'.underscore.humanize