我在查找解決方案時遇到了一些問題。基本上,我有一個嵌入式ruby每個循環,其主體是部分呈現模型的某個子組。例如:刷新HTML內容,由嵌入式Ruby提供,無需重新加載頁面
<li id="thing">
<% items.each do |i| %>
<%= render :partial => 'item', :locals => {:i => i} %>
<% end %>
</li>
我在想,如果有使用jQuery,AJAX的方式,甚至只是軌(我敢肯定,每個人都有對我來說是可實現的解決方案,我很感興趣的是他們)刷新該項目的列表。我希望能夠做到這一點的原因是,目前,我已經實現了功能,以允許創建現在的「項目」或再次更新現有的「項目」,而不必重新加載頁面(表單在兩種情況下,按鈕點擊都會出現在某個容器中),我希望在提交列表時自動更新新信息或新「項目」。嘗試刷新整個列表會是更好的方法嗎?或者是否有辦法將新創建/更新的對象附加到部分(作爲部分)客戶端列表?
我試過以下語句,但我似乎無法避免在渲染時出現「未定義的方法」錯誤。
$("#activeTab").append("<%= escape_javascript(render :partial => 'item', :locals => {:i => Item.order(:created_at).last}) %>");
我想這會是一個很好的解決方案,因爲一旦網頁被導航程,回來,名單將需要重新加載。這只是添加到靜態列表,而你仍然在頁面上。
你能包括大致什麼的HTML Ruby代碼會導致同樣,該列表,表單和表單處理邏輯都在同一頁面上? – 2013-03-23 02:27:15
該視圖具有與此視圖適用的模型關聯的對象列表,所以我從另一個模型中抓取該部分項。部分內容包括上傳的照片或視頻,一些指標等,因此沒有太複雜的內容。當單擊適當的按鈕時,表單會替換集裝箱暫時列出清單,並在提交後再次顯示清單。我只是在click事件處理程序中使用jQuery .show()和.hide()方法。表單是一個rails表單,所以我使用語法form_for ...這是否提供了一個更好的主意?感謝您抽出時間:) – 2013-03-23 02:34:33
我很抱歉,但現在是3:45,所以仍然沒有足夠的信息讓我的大腦能夠充分了解情況。就我所見,我們在瀏覽器中有一個html頁面,並且有一個服務器能夠吐出html並對ajax請求作出反應。對不起,也許我知道太少(沒有真正的)關於Ruby的幫助。 – 2013-03-23 02:46:29