使用軌道3.1,jquery的v1.6.4,jQuery的UJS具有麻煩重裝泛音
即時試圖重新加載的部分,但它似乎沒有工作,當期望:
<div id="album"> <%= render 'album_index' %></div>
<%=link_to 'Show All Albums', albums_path(:filter_by => 'all'), :remote => true%><br>
<%=link_to 'Show Old Albums', albums_path(:filter_by => 'old'), :remote => true%><br>
index.js。 ERB
$("#album").html('<%= escape_javascript(render 'album_index') %>');
當用戶第一次載入「索引」,<%=渲染「album_index」%>將與回報在我的相冊樣板中的所有行是默認的正常顯示。當用戶點擊「顯示舊相冊」鏈接時,jquery動作會加載'album_index',並會根據param [:filter_by] ==「old」在我的控制器中運行一個特定的查詢,並返回正確的結果,即回到視圖中。
現在的問題是,當我點擊加載「舊」過濾器的鏈接,它不會重新加載現有的渲染,但雙重呈現它。所以我的視圖包含了渲染'album_index',其結果來自param [:filter_by] ==「all」,並在下方顯示'album_index再次渲染,但結果來自param [:filter_by] ==「old」。
我會爲它不會雙重渲染,但重新加載現有的部分與新的結果。
有什麼建議嗎?
我認爲渲染'album_index'部分存在問題。它應該是: $(「#album」)。html(「<%= escape_javascript(render'album_index')%>」); – mabounassif