目前,我正在开发一个使用Rails 3.0.3的网站,有个叫events的模型。在我的事件控制器.rb文件中,有如下代码:
def destroy
@event = Event.find(params[:id])
@event.destroy
#redirect_to events_url
respond_to do |format|
format.html { redirect_to (events_url), :notice => 'Event deleted' }
format.js
end
end
我在那里有一个index.html.haml文件,如下:
- content_for :title do
Listing Events
%div#event
= render :partial => "task"
我有一个名为_task.html.haml的部分文件,其中分配了div id和ajax Remote true,如下所示:
- @events.each do |event|
%ol.hoverbox
%li.all{:id =>"event_#{event.id}"}
= link_to image_tag(event.photo.url), event_path(event)
.abc
= event.name
%br/
.bca
= event.start_date
= event.start_time
= link_to 'Delete', event, :confirm => 'Are you sure?',
:method => :delete,
:remote => :true
最后我在destroy.js.haml部分写了如下代码:
$('##{dom_id(@event)}').remove();
使用Ajax后成功删除了,但是计数器仍显示相同的值,手动刷新页面后计数器才会减少。请告诉我如何通过Ajax进行更新?在我的模型中,即Event.rb文件中,我计算了像这样的事件的NO值,以维护计数器:
def current_date
Date.today
end
def self.find_current
Event.find :all, :conditions => ['(start_date = current_date)'], :order => 'start_date '
end
def self.count_past(current_date = Date.today)
Event.count :all, :conditions => ['start_date < ?', current_date], :order => 'start_date'
end
def self.count_upcoming(current_date = Date.today)
Event.count :all, :conditions => ['start_date > ?', current_date], :order => 'start_date'
end
def self.count_today(current_date = Date.today)
Event.count :all, :conditions => ['start_date = ?', current_date], :order => 'start_date'
end
我还有一个部分,叫做subNav.html.haml Heer,用于在网页上显示计数:
%li
- if params[:controller] == "brands"
// my code
- elsif params[:controller] == "events"
%a.blue.tt-top-center{:title => "Today's Events", :href => events_path(:view => "today") }#{Event.count_today}
%span Today's Events
%li
- if params[:controller] == "brands"
//my code
- elsif params[:controller] == "events"
/= link_to "Upcomming events", events_path(:view => "upcoming")
%a.tt-top-center{:title => "upcomming Events", :href => events_path(:view => "upcoming") }#{Event.count_upcoming}
%span Upcoming Events
我搜索了许多链接,都没有办法为我提供帮助。所以请帮助我,使用相同的名称、类和网址,以便在我的代码中使用。真心感谢你的帮助!
put $('##{dom_id(@event)}').reset();
in destroy.js.erb
file.