在显示页面中,我会显示定期事件发生日期的列表,并计算所有日期的统计数据,如最大值,最小值和连续日期之间的平均间隔。如何在完成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