2016-05-13 61 views
0

我有这样PARAMS:删除`“`从字符串轨道4

params[:id]= "\"ebfd11a9-3aa4-415a-ba72-1b6796ea1bf6\"" 

,我希望得到如下预期的结果:

"ebfd11a9-3aa4-415a-ba72-1b6796ea1bf6" 

我怎样才能做到这一点

+0

哪里的数据从何而来,即谁发出请求? – Stefan

回答

4

您可以使用gsub

"\"ebfd11a9-3aa4-415a-ba72-1b6796ea1bf6\"".gsub("\"", "") 
=> "ebfd11a9-3aa4-415a-ba72-1b6796ea1bf6" 

或者,如@Stefan提到,delete

"\"ebfd11a9-3aa4-415a-ba72-1b6796ea1bf6\"".delete("\"") 
=> "ebfd11a9-3aa4-415a-ba72-1b6796ea1bf6" 
+0

你也可以用'delete'去除单个字符,它的开销比'gsub'少。 – Stefan

+0

@Stefan,谢谢,更新。 – Ilya

+1

或'.delete(''')',当然, –

4

如果这是JSON数据,它很可能是在这种格式:

JSON.load(params[:id]) 

该处理的事情,其中​​有以某种方式在那里逃脱串,或者参数是一个数组。

+0

Rails应该自动解析JSON数据 – Stefan

+0

它只能通过POST来完成,如果通过GET进入,它不会经过相同的处理程序,使用错误的序列化查询参数很容易产生AJAX调用 – tadman

+0

'JSON.load(params [:id])'会在这种情况下有所帮助,但是如果数据正确的话会导致分析错误 – Stefan

1

Just Use tr!

params[:id].tr!("\"","") 

tr!也将改变主串

如果你不想改变主串只需使用:

params[:id].tr("\"","") 

感谢伊利亚

+1

如果您想要修改源字符串,请更好地使用不带感叹号的'tr' – Ilya