Skip to content

Commit

Permalink
Fix some n+1 queries on front page
Browse files Browse the repository at this point in the history
  • Loading branch information
tjgrathwell committed Jul 13, 2013
1 parent a3e8a2e commit 7505e26
Show file tree
Hide file tree
Showing 8 changed files with 22 additions and 4 deletions.
1 change: 1 addition & 0 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ group :development do
gem 'guard-rspec'
gem 'rb-fsevent'
gem 'terminal-notifier-guard'
gem "bullet"
end

group :test, :development do
Expand Down
4 changes: 4 additions & 0 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,8 @@ GEM
railties (>= 3.1.0)
sass-rails (>= 3.1.0)
builder (3.0.4)
bullet (4.6.0)
uniform_notifier
capybara (2.1.0)
mime-types (>= 1.16)
nokogiri (>= 1.3.3)
Expand Down Expand Up @@ -278,6 +280,7 @@ GEM
uglifier (1.3.0)
execjs (>= 0.3.0)
multi_json (~> 1.0, >= 1.0.2)
uniform_notifier (1.2.0)
uuidtools (2.1.4)
warden (1.2.1)
rack (>= 1.0)
Expand All @@ -296,6 +299,7 @@ DEPENDENCIES
awesome_print
backbone-on-rails
bootstrap-sass-rails
bullet
capybara (>= 2.0.1)
capybara-screenshot
coffee-rails
Expand Down
4 changes: 2 additions & 2 deletions app/controllers/events_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ class EventsController < ApplicationController
before_filter :set_time_zone, only: [:create, :update]

def index
@events = Event.upcoming
@past_events = Event.past
@events = Event.upcoming.includes(:event_sessions, :location)
@past_events = Event.past.includes(:location)
end

def show
Expand Down
4 changes: 4 additions & 0 deletions app/helpers/events_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,10 @@ def organizer_list
@event.organizers_with_legacy.empty? ? [] : @event.organizers_with_legacy
end

def formatted_event_date(event)
l event.date_in_time_zone(:starts_at), :format => :date_as_day_mdy
end

def formatted_session_date(event_session)
l event_session.date_in_time_zone(:starts_at), :format => :date_as_day_mdy
end
Expand Down
4 changes: 4 additions & 0 deletions app/models/event.rb
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,10 @@ def self.past
where('ends_at < ?', Time.now.utc)
end

def date_in_time_zone start_or_end
read_attribute(start_or_end).in_time_zone(ActiveSupport::TimeZone.new(time_zone))
end

def upcoming?
ends_at > Time.now
end
Expand Down
2 changes: 1 addition & 1 deletion app/models/event_session.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ class EventSession < ActiveRecord::Base
validates_presence_of :starts_at, :ends_at, :name
validates_uniqueness_of :name, scope: [:event_id]

belongs_to :event
belongs_to :event, inverse_of: :event_sessions
has_many :rsvp_sessions, dependent: :destroy
has_many :rsvps, :through => :rsvp_sessions

Expand Down
2 changes: 1 addition & 1 deletion app/views/events/_event.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,6 @@
<%= formatted_session_date_and_time(session) %><% if index < event.event_sessions.length - 1 %><br /><% end %>
<% end %>
<% else %>
<%= formatted_session_date(event.event_sessions.last) %>
<%= formatted_event_date(event) %>
<% end %>
</td>
5 changes: 5 additions & 0 deletions config/environments/development.rb
Original file line number Diff line number Diff line change
Expand Up @@ -37,4 +37,9 @@

# Fake, boring secret token for dev
config.secret_token = ('x' * 30)

config.after_initialize do
Bullet.enable = ENV['BULLET_ENABLE']
Bullet.bullet_logger = true
end
end

0 comments on commit 7505e26

Please sign in to comment.