我試圖在我的應用中實現一些Ajax。一個奇怪的行爲發生! 這是一個日託應用程序。當您顯示特定日期的特定日託時,您可以添加一些孩子。 最初會生成數據庫的子項列表,當您點擊其中一個頁面時,頁面重新加載和新的孩子出現在日託的考勤列表中。它工作正常,我只是想添加一些Ajax來更友好!Rails 3的每種方法和Ajax
當您點擊孩子將他添加到託兒所時,會創建一個daycare_item(連接表,小孩的ID和託兒所的ID)。
我做出改變,使其阿賈克斯準備:
- 局部的名單
- format.js在daycare_item控制器
- 遠程真正的鏈接。
它的作品,沒有更多的重新加載!但是,只有當您再次單擊兒童列表時纔會更新列表(添加的最後一個孩子尚未出現)。 js事務可以工作,如果手動刷新頁面,則顯示缺少的子項。
我嘗試一些東西,這裏是我的結果:
在我的部分有
<% @daycare.daycare_items.each do |c| %>
<li><%= c.child.firstname ></li>
<% end %>
這產生一個孩子誰沒有顯示(直到完全刷新)的「滯後」效應
但是,如果我把一個
<%= @daycare.daycare_items.count %>
代碼更新的時間 ! 我在日誌中看不到什麼奇怪的東西。 我在問爲什麼.each方法有所作爲?
我想知道daycare.daycare_items.count是否會以daycare.daycare_items集合被刷新的方式觸及或查詢數據庫? –
這裏是在列表中兩個成功clics後的日誌:http://pastebin.com/X2ZzY1jC我沒有看到來自count動作的查詢。在此操作之後,計數爲2,並且只有列表中的子項纔會刷新頁面,然後列出兩個名稱。 (enfant_id是法文,數據庫的一部分是法文,我正在盡我所能翻譯幾欄!)。也許我必須在控制器中仔細觀察,也許我應該和一些當地人一起玩? –
我不知道它是否與您的問題有關,但請注意* .bind *和* .live *之間的區別(如果您使用jQuery,則不適用)。 – Fernando