1

ruby コードに、バックスラッシュで終わる文字列があります。

acc.secret_key = "ASJSJJDSJFJJFFJJFJF\"
acc.save

上記はコード スニペットです。アクティブ レコードを使用して保存しようとすると、エラーが発生します。別のスラッシュを追加してみました。

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

しかし今、DB に 2 つのスラッシュがあります。私は何が欠けていますか?どうもありがとう。

4

2 に答える 2

2

これはコンソールに表示されていますか?その場合は、2 つの実際のバックスラッシュではなく、エスケープしているだけです。

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

バックスラッシュがエスケープされたレコードを db コンソールで検索すると、バックスラッシュが 1 つ表示されます。

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)
于 2013-02-05T21:58:50.047 に答える
0
acc.secret_key = "ASJSJJDSJFJJFFJJFJF//".to_string
acc.save

これにより、backshash を含む文字列がデータベースにプッシュされます

于 2013-02-05T18:15:07.350 に答える