我對rails非常陌生,甚至更新的嘗試讓Ajax進入。到目前爲止,我已經成功地獲得了一個簡單的Ajax調用,當我點擊顯示鏈接時,通過在js.erb中渲染一個部分來更新div。僅供參考我正在使用Rails 3.1。這種類型的事情對我的作品沒有問題:試圖刷新由js.erb文件在rails中由index.html.erb加載的div
我的鏈接:
<td><%= link_to "Show", widget, :remote => true %></td>
在控制器:
def show
@widget = Widget.find(params[:id])
respond_to do |format|
format.html { redirect_to @widget }
format.js
end
end
在show.js.erb
$("#myDiv").html("<%= escape_javascript(render('widget_detail')) %>")
在_widget_detail.html.erb
<div id="myDiv">
<p>
<strong>Address:</strong>
<%= @widget.address %>
</p>
</div>
我現在遇到的問題是我有一部分由index.html.erb呈現的網站。我無法弄清楚如何使用ajax調用來獲取index.html.erb。我認爲必須有一些我需要知道的其他java腳本,因爲除非你根據我能說的來調用一個部分,否則這是行不通的。
$("#content").html("<%= escape_javascript(render('index')) %>")
我可以讓它做什麼,我希望它不要做,如果我再拍部分,只是傾倒我index.html.erb中有同樣的事情。因此,例如我可以稱之爲_junk.html.erb並執行此操作:
$("#content").html("<%= escape_javascript(render('junk')) %>")
它會工作得很好。我確定我缺少一些簡單的東西,或者只需要在.js.erb文件中做一些不同的事情,但我不確定是什麼。對我來說,我需要在兩個地方使用相同的代碼是沒有意義的。