在 Rails 和 Javascript 中转义

Posted

技术标签:

【中文标题】在 Rails 和 Javascript 中转义【英文标题】:Escaping " in Rails and Javascript 【发布时间】:2011-09-07 16:25:44 【问题描述】:

我在@product_records 中有一个由我的产品数据组成的哈希数组。我可以像这样使用 map 函数提取产品的名称:

<%= @product_records.map|x|x["Name"] %>

它完全按照我想要的方式呈现到这样的页面:

["Product1","Product2",...,"Productn"]

我想尝试将它传递给一个 javascript 变量,以便我可以将它与 JQuery 自动完成一起使用。

var data = <%= @product_records.map|x|x["Name"] %>

当我尝试设置它时,虽然双引号像这样转义:

[&quot;Product1&quot;, &quot;Product2&quot;,...,&quot;Productn&quot;]

我尝试了各种方法来尝试取回引号(.to_json 等),但似乎没有任何效果。可能有一个非常简单的答案,但我找不到它是什么。

为任何帮助干杯。

【问题讨论】:

【参考方案1】:

使用&lt;%= raw your_variable %&gt; :)

【讨论】:

干杯。我知道这很简单(虽然可能不像 3 个字母那么简单)。感谢您的帮助:) raw 是我在过去几天里读到的最有用的东西。谢谢@svilen 该死!我花了一个小时更换 js var... 直到我开始认为这必须是一种更简单的方法来做到这一点。非常感谢! :D 确保最终用户无法设置此变量...否则,您将面临 xss 攻击 - 谨慎使用 raw 天哪,非常感谢,让我免于头痛【参考方案2】:

当您在 javascript 中使用该变量时,请确保您有单引号来在 javascript 中执行 rails 代码。

'<%= raw @products.to_json %>'

谢谢

【讨论】:

【参考方案3】:

就我而言,我不得不这样使用,例如:&lt;%= j raw @products %&gt;

【讨论】:

以上是关于在 Rails 和 Javascript 中转义的主要内容,如果未能解决你的问题,请参考以下文章

在 Rails 查询中转义引号

在控制台/rake/rails 中转义确保

在rails中转义SQL LIKE的查询

在 JavaScript 中转义字符串

在 Javascript 中转义单引号

如何在 JavaScript 中转义单引号 ( ' )? [复制]