Hi there, I am working on an events site where there are a bunch of
different calendars (for different groups of people) that display
submitted events that belong to that calendar, the dates for the events
are kept as Occurrence objects.
This code works fine, it just takes really long to load a page if I use
it, it pulls events for a particular calendar from the database and
displays the event info on the page. Any suggestions on how to speed it
up? I’m pretty sure it takes a long time because it’s pulling all the
occurrences (theres a lot of them) of all events from the database and
then going through all of those and rejecting all but the few events
that belong the necessary calendar.
CalendarController
@calendar = params[:cal]; # calendar for the events to belong to
@length = params[:length];
@limit = params[:limit]; # tells how many events are being called for
if @limit == nil
@limit = ‘-1’;
end
if @length == ‘all’
@occurrences = @calendar.all_events()
end
Calendar model
def all_events() #the part that I think takes forever to load
o = Occurrence.find_all_events()
o.reject do |c|
c.event.nil? || !c.event.calendars.include?(self)
end
end
Occurrence model
def find_all_events()
Occurrence.find :all
end
Thanks for any help!