我怎样才能让to_json逃脱前斜线

时间:2011-07-24 21:20:35

标签: ruby-on-rails

在导轨中,如果我拨打"</script>".to_json,则结果为"\"</script>\""。无法使用尖括号或前斜线进行转义。有没有办法让to_json逃脱这些?

这个小小的erb片段演示了这个问题:

<%= javascript_tag do %>
var a = <%= raw("</script>".to_json) %>;
alert("hi");
<% end %>

这会产生以下输出:

<script type="text/javascript"> 
//<![CDATA[

    var a = "</script>";
    alert("hi");

//]]>
</script>  

在这种情况下,脚本标记会过早关闭。任何人都有一个很好的解决方案?

2 个答案:

答案 0 :(得分:6)

可以使用JSON.parse()删除斜杠。

首先,您需要从正在获得的响应中提取正文。

response_body = response_you_get_after_request.body

然后将响应作为参数传递如下: -

 filtered_response = JSON.parse(response_body). 

答案 1 :(得分:0)

<%= raw escape_javascript("</script>".to_json) %>

...产生

\"<\/script>\"

这是你要找的吗?