1

我對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文件中做一些不同的事情,但我不確定是什麼。對我來說,我需要在兩個地方使用相同的代碼是沒有意義的。

回答

0

我認爲你應該分開代碼,將重用到一個部分,然後渲染你的index.html.erb中的部分。然後,您可以在需要刷新該部分時使用該部分。