防止“变成”的方法

时间:2012-08-25 13:54:21

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2

我有以下一行:

data: <%= @product_count.to_json %>

呈现:

data: [[&quot;name1&quot;,20],
      [&quot;name2&quot;,9],
      [&quot;name3&quot;,18],
      [&quot;name4&quot;,32],
      [&quot;name5&quot;,28],
      [&quot;name6&quot;,17],
      [&quot;name7&quot;,11]]
在视图中

。如何更改此设置,以便获取实际引号而不是HTML。

数据来自这一行:

period_registration_product.each do |key, value|
      @product_count << [Product.find_by_id(key).name, value]
end

更新

我试过了:data: <%= JSON.parse(@product_count.to_json) %>但它失败了。

4 个答案:

答案 0 :(得分:6)

我最终使用:data: <%= @product_count.to_json.html_safe %>

我同时尝试了hraw,但这些都没有,html_safe做到了。

不确定原因,但对于未来的旅行者,我在轨道版本3.2.7。

答案 1 :(得分:3)

尝试

data:    <%= raw @product_count.to_json %>

data:    <%= @product_count.to_json.html_safe %>

答案 2 :(得分:0)

您可以使用CGI::unescapeHTML

> CGI::unescapeHTML("Usage: foo &quot;bar&quot; &lt;baz&gt;")
=> "Usage: foo \"bar\" <baz>"

并将其转换回来。我不知道如何防止它。

上述解决方案对我有用。更多尝试这个link。希望这会有所帮助。

答案 3 :(得分:0)

根据数据的来源,您可以将其标记为raw,以便不对其进行html转义吗?