使用Rails在视图中打印有效的,非转义的JSON
我已经尝试了一切。 每个组合的助手raw
, html_safe
to_json
包括对::JSON.encode
和CGI.unescape
一些尝试。 问题在于,无论我做什么,我都无法在视图中打印格式良好的JSON。 它始终是HTML转义的。
这是我视图中的代码:
var campaignData;
在我的情况下,它始终是被引用的引号“。我只是在引号上做一个gsub,但这对于IMO应该是一个非常简单,记录良好的用例来说是一个可怕的解决方案。
这里的问题是“=”字符串。 由于它被认为是不安全的,它会污染另一个字符串。
你可以做任何一件事:
raw("=" + @campaign.to_json)
要么
"= #{@campaign.to_json}".html_safe
大致相同。
从ActiveSupport 2.3.3开始,您就能够完成.as_json
你试过escape_javascript
吗?
这是* .haml文件中的一个示例,我刚刚添加它以测试我的答案。
:javascript var foo=$.parseJSON("#{j @albums.to_json}")
其中j
是escape_javascript
的短别名。
用实用方法试试这个
var campaignData<%=h " =#{raw @campaign.to_json}" if @campaign %>;