Format.js只会呈现包含单行的部分

时间:2012-03-29 21:38:35

标签: ruby-on-rails-3 jquery

Rails 3.2.1:我有以下div调用部分

<div id="weighin">
<%= render :partial => "my_weight/weighin" %>
</div>

partial包含一个表单,该表单将ajax(即has:remote =&gt; true)发布到控制器:

respond_to do |format| 
   format.js
end

.js.erb文件只有一行:

$("#weighin").html("<%= render :partial => "my_weight/weighin1" %>"); 

_weighin1.html.erb部分文件只有一行:

<p><%= @my_weight[1].weight %></p>

这是有效的,因为原来的div被@my_weight字段的值替换 - 所以基本结构都正常工作

但是,Rails不会处理部分中的任何代码 - 如果我将回车添加到那一行的末尾,服务器日志确认一切正常,但没有脚本在页面上运行 - 即没有什么变化。

如果我尝试在部分中添加更多html,但是将它们全部放在一行中也会发生同样的情况 - 这也不会运行。

如何在部分?

中输出多个短语句

1 个答案:

答案 0 :(得分:3)

好的,我想出来了:

$("#weighin").html("<%= escape_javascript(render :partial => "my_weight/weighin1") %>");

escape_javascript是必不可少的

令人困惑的是,根据您发送的html()中的内容,这有时会在没有escape_javascript的情况下发挥作用,导致错误的结论......: - )