【问题标题】:Escaping " in Rails and Javascript在 Rails 和 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 等),但似乎没有任何效果。可能有一个非常简单的答案,但我找不到它是什么。

为任何帮助干杯。

【问题讨论】:

    标签: javascript ruby-on-rails-3 jquery-ui


    【解决方案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;

      【讨论】:

        猜你喜欢
        • 2011-07-24
        • 2011-08-06
        • 1970-01-01
        • 1970-01-01
        • 2014-01-17
        • 2014-02-22
        • 1970-01-01
        • 1970-01-01
        • 2015-05-16
        相关资源
        最近更新 更多