我正在编写一个在后端使用 Rails 并在前端使用 javascript/backbone 的应用程序。我正在尝试将一些 rails 模型引导到我的 javascript中。具体来说,我想将 的内容加载@courses
到一个名为window.courses
. 我在一个html.erb
文件中有以下内容。
<%= javascript_tag do %>
window.courses = JSON.parse('<%= @courses.to_json %>');
<% end %>
我期待erb
预处理器将其呈现为有效的javascript,就像这样
<script type="text/javascript">
//<![CDATA[
window.courses = JSON.parse('[{"code":"myCourseCode", ...
//]]>
</script>
...但是,相反,我得到了包含HTML 实体的代码。
<script type="text/javascript">
//<![CDATA[
window.courses = JSON.parse('[{"code":"myCourseCode", ...
//]]>
</script>
显然,当我尝试解析它时,我得到了 javascript 错误。
有谁知道我如何处理这些 HTML 实体以生成有效的 javascript?我意识到一种选择是对客户端的实体进行转义,但这似乎是一个迂回的解决方案。有没有一种方法可以让 Rails 生成不需要转义的 JSON?