2012-03-29 55 views
0

的Rails 3.2.1:我有以下的div调用部分Format.js只会渲染部分包含单行

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

的部分中包含一种形式的职位AJAX(即有:遥控器=>真)向控制器:

respond_to do |format| 
    format.js 
end 

的.js.erb文件具有单个线:

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

的_weighin 1.html.erb部分文件有一行:

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

这工作,在原来的div替换为@my_weight字段的值 - 这样的基本结构,工作一切ok

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

同样的情况发生,如果我试图把更多的HTML在部分,但把它放在一行 - 这不运行。

如何在部分中输出多个简短语句?

回答

3

OK,我想通了这一点:

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

escape_javascript是必不可少的

什么困惑的是,这取决于是在html()您发送,这将有时没有escape_javascript工作,导致一个错误的结论... :-)