mpo*_*z08 23 ruby regex string ruby-on-rails
嘿,我正在写我的第一个Rails应用程序,我正在尝试用空格替换下划线形成一个传入的id名称,如下所示:
之前:test_string
之后:测试字符串
我怎样才能做到这一点?对不起,如果这是一个愚蠢的问题,我对正则表达式不是很熟悉......
Jer*_*ten 34
str.gsub!(/_/, ' ')
Run Code Online (Sandbox Code Playgroud)
gsub 代表'全局替换',感叹号意味着它将改变字符串本身而不是仅返回替换字符串.
你也可以在没有正则表达式的情况下使用String#tr!:
str.tr!('_', ' ')
Run Code Online (Sandbox Code Playgroud)
And*_*ión 27
在rails上你可以使用简单.humanize和ruby的.downcase方法,但要小心,因为它也会删除任何最后的'_id'字符串(在大多数情况下,这正是你需要的,甚至是大写的第一个字母)
'text_string_id'.humanize.downcase
=> "text string"
Run Code Online (Sandbox Code Playgroud)
哎呀,我实际上有它工作 - 只是忘了更新变量名称:P
我在用这个:
@id = params[:id]
@title = @id.gsub("_", " ")
Run Code Online (Sandbox Code Playgroud)