2013-02-05 29 views
1

我在我的Ruby代碼串與一個反斜槓結尾:不能保持反斜線在字符串中的Ruby代碼

acc.secret_key = "ASJSJJDSJFJJFFJJFJF\" 
acc.save 

上面是代碼片段,當我嘗試保存使用Active記錄我得到它錯誤,我試圖添加另一個斜槓是

acc.secret_key = "ASJSJJDSJFJJFFJJFJF\\" 
acc.save 

但現在我在DB中有兩個斜線。我錯過了什麼?非常感謝。

+1

你得到了什麼錯誤? – alexsanford1

+0

我沒有得到一個錯誤,但我有兩個斜槓在數據庫中,如果我不做任何事情,只是保持「ASJSJJDSJFJJFFJJFJF \」我得到一個語法錯誤 – user1781472

+0

數據庫中的兩個斜線是它逃避反斜槓的結果(使用另一個反斜槓)。像Dave Newton所說的那樣嘗試使用單引號,並且在db中應該還有兩個出現。 – iamnotmaynard

回答

2

你在控制檯中看到這一點?如果是這樣的話,你只是看到逃避不是兩個實際的反斜槓。

string = "1234\\" 
# => "1234\\" 
string.length 
# => 5 (if there were two \\'s the length would be 6) 
string 
# => "1234\\" 
puts string 
# 1234\ 
# => nil 

如果您在數據庫控制檯中查找帶有轉義反斜槓的記錄,則應該看到一個反斜槓。

tests_development=> select * from tests WHERE tests.id = 1; 
id |  name  |   created_at   |   updated_at   | public 
----+-----------------+----------------------------+----------------------------+-------- 
    1 | this is a test\ | 2013-02-05 21:44:12.339854 | 2013-02-05 21:44:12.339854 | t 
(1 row) 
0
acc.secret_key = "ASJSJJDSJFJJFFJJFJF//".to_string 
acc.save 

這將與backshash串推入數據庫

+0

恐怕這不會做任何事情......字符串文字已經是一個字符串。 – iamnotmaynard

+0

'acc.secret_key =「ASJSJJDSJFJJFFJJFJF //」。to_string'試試這個 –

相關問題