2012-03-29 40 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工作,導致一個錯誤的結論... :-)