在顯示頁面中,我會顯示定期事件發生日期的列表,並計算所有日期的統計數據,如最大值,最小值和連續日期之間的平均間隔。如何在完成best_in_place編輯時觸發事件?
我使用best_in_place gem來允許就地編輯日期。但是,每次更改日期時,統計信息都必須從服務器計算並重新呈現。
如何掛鉤回調函數以完成best_in_place編輯,以便統計信息可以重新呈現?
這是show.html.erb
<td id="event_date">
<%= best_in_place @event, :occur_date %>
</td>
我的Rails代碼的HTML是
<td id="event_date">
<span class='best_in_place' id='best_in_place_event_132_occur_date' data-url='/events/132' data-object='event' data-attribute='occur_date' data-type='input'>2012-03-23</span>
</td>
我嘗試下面的咖啡腳本代碼:
jQuery ->
$("#best_in_place_event_*_occur_date").live 'ajax:complete', (evt, data, status, xhr) ->
alert "a date has changed"
這並未我似乎沒有工作,編輯日期(發生日期)後沒有任何反應。
任何人都知道我應該在成功的best_in_place編輯時觸發事件嗎?
你說,「統計數據必須進行計算,並從服務器重新呈現。」所以這個重新計算在模型中發生,並在更新操作中從控制器調用,對吧?只是在回答之前試圖弄清楚我的事實。 – IAmNaN 2012-04-14 21:23:24
是的,統計計算是在模型中完成的,並且統計數據(例如max,min,avg)不存儲在ActiveRecord中。不知道我是否做得對,但我沒有通過控制器,我有視圖調用模型方法。這是我的代碼。在'views/events/show.html.erb'中\t \t \t <%= render:partial =>「events_stats」,:locals => {:event => @event}%> 而在'views/events/_event_stats .html.erb': <%stats = event。get_event_stats%> <% if stats%>最短:<(%)=統計[:分鐘]%>天最長:<(%)=統計[:最大]%>天平均:<(%)=統計[:平均]%>天 <% end %> – 2012-04-17 04:36:03