Rails 3.2 js.erb文件转义js

Rails 3.2 js.erb file escaping JS

本文关键字:js 文件 转义 erb Rails      更新时间:2023-09-26

我是rails的新手,我被一些事情弄糊涂了。

我正在使用一个js.erb文件来显示从服务器获取的产品列表。我困惑的是如何在js.erb文件中做到这一点,它的工作原理是:

<ul class="list-bordered" id="products">
    <%= render_cell :businesses, :index, {:businesses => @businesses} %>
</ul>
<%= render :partial => 'partials/infinite', :locals => {:segment => businesses_path, :container => '#businesses'} %>

并且每隔一个JS代码都被转义,因此

var t = 0;

在页面中输出为"var t=0;"

我查看了服务器日志,结果确实是JS。我正在使用responsd_with,并检查我是否确实在响应JS请求。

侧面问题:用"最佳实践方式"来说,在.js.erb文件中包含html代码可以吗?

提前感谢!

由于您正在启动AJAX请求,它的数据类型现在是script,在.js.erb文件中,您可以轻松地编写Javascript代码。

$("#products").html("<%=escape_javascript(render_cell :businesses, :index, {:businesses => @businesses}%>")

现在,您可以根据自己的意愿操作.js.erb或HTML;这只是一个如何在.js.erb中渲染分部的示例。

现在假设您在客户端呈现HTML(考虑到数据类型是text/html)。AJAX成功后,您必须替换HTML。