因为特殊需求,需要输出的文本里面有 #{xxx} 这类字符串形式,估计是与 rails 本身这类变量引用定义形式有冲突,总是无法正确解析显示出来,是否有办法?
加个转意字符
\#{aa}
#1 楼 @adamshen 有试过的,不行的
我用 pry 试了下可以,你的代码能贴一下吗?
[1] pry(main)> puts "\#{xxx}" #{xxx} => nil [2] pry(main)> [1] pry(main)> require 'erb' => true [2] pry(main)> ERB.new("\#{xxx}").run #{xxx}=> nil [3] pry(main)>
#3 楼 @adamshen 实在不好意思,这几天有事,刚有空上来,你加转意字符的方法是对的,是我忽略了代码中有个地方加了 escape_javascript,进行了二次转译。本来也没关系,但关键是,我 escape_javascript 外面还套了个双引号,这时问题就来了,二次转译后,第一次加的转译符全部失效,然后“#{}”仍按 ruby code 方式处理了,解决方法,双引号改成单引号,真是不良习惯害死人。
推荐 rubocop,会建议所有字符串如果没转义用单引号 效果不错