Rails' to_sql'没有' \'

时间:2015-04-11 21:04:46

标签: ruby-on-rails

所以我只想展示

Shop.all.to_sql

作为

 => "SELECT "shops".* FROM "shops"" 

但得到了

 => "SELECT \"shops\".* FROM \"shops\"" 

我尝试了gsub,但是rails忽略了&#39; <&#39;

Shop.all.to_sql.gsub('\', '')

我怎么能摆脱&#39; \&#39;?

2 个答案:

答案 0 :(得分:9)

那些\并不存在 - 这是ruby显示字符串的方式(或者更确切地说,这是inspect方法对字符串的工作方式)。简而言之,就是说下一个"不是字符串的结尾,而是它的一部分:

'"'    #=> "\""

要查看没有斜杠,请告诉ruby显示结果字符串:

puts Shop.all.to_sql
# SELECT "shops".* FROM "shops"
#=> nil

答案 1 :(得分:-1)

gsub的第一个参数应该是正则表达式。此外,该字符串中没有反斜杠,有双引号,因此Shop.all.to_sql.gsub(/"/, '\'')应该起作用