2016-05-13 66 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