Rails 3.2 js.erb文件转义JS

时间:2012-09-12 13:39:19

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

我是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。我正在使用respond_with,并检查我确实响应了JS请求。

侧面问题:以“最佳实践方式”说话,在.js.erb文件中使用html代码是否正常?

提前致谢!

1 个答案:

答案 0 :(得分:2)

由于您正在触发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。