在 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"] %>
当我尝试设置它时,虽然双引号像这样转义:
["Product1", "Product2",...,"Productn"]
我尝试了各种方法来尝试取回引号(.to_json 等),但似乎没有任何效果。可能有一个非常简单的答案,但我找不到它是什么。
为任何帮助干杯。
【问题讨论】:
【参考方案1】:使用<%= raw your_variable %>
:)
【讨论】:
干杯。我知道这很简单(虽然可能不像 3 个字母那么简单)。感谢您的帮助:) raw 是我在过去几天里读到的最有用的东西。谢谢@svilen 该死!我花了一个小时更换 js var... 直到我开始认为这必须是一种更简单的方法来做到这一点。非常感谢! :D 确保最终用户无法设置此变量...否则,您将面临 xss 攻击 - 谨慎使用 raw 天哪,非常感谢,让我免于头痛【参考方案2】:当您在 javascript 中使用该变量时,请确保您有单引号来在 javascript 中执行 rails 代码。
'<%= raw @products.to_json %>'
谢谢
【讨论】:
【参考方案3】:就我而言,我不得不这样使用,例如:<%= j raw @products %>
【讨论】:
以上是关于在 Rails 和 Javascript 中转义的主要内容,如果未能解决你的问题,请参考以下文章