From 2c76d4b0cfa1b67053f5bded45ebc83d5a3dade0 Mon Sep 17 00:00:00 2001 From: Morgan Roderick Date: Fri, 20 Feb 2026 22:49:50 +0100 Subject: [PATCH] fix: eager load organisers on homepage events Add missing :organisers include to Workshop, Meeting, and Event queries in DashboardController#upcoming_events to prevent N+1 queries when rendering the homepage. --- app/controllers/dashboard_controller.rb | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/controllers/dashboard_controller.rb b/app/controllers/dashboard_controller.rb index 39100d7c2..43833093e 100644 --- a/app/controllers/dashboard_controller.rb +++ b/app/controllers/dashboard_controller.rb @@ -33,7 +33,7 @@ def about; end def wall_of_fame @coaches_count = top_coach_query.length coaches = Member.where(id: top_coach_query - .year(year_param)) + .year(year_param)) .includes(:skills) @pagy, @coaches = pagy(coaches, items: 80) end @@ -55,20 +55,20 @@ def top_coach_query end def upcoming_events - workshops = Workshop.upcoming.includes(:chapter, :sponsors) + workshops = Workshop.upcoming.includes(:chapter, :sponsors, :organisers) all_events(workshops).sort_by(&:date_and_time).group_by(&:date) end def upcoming_events_for_user chapter_workshops = Workshop.upcoming .where(chapter: current_user.chapters) - .includes(:chapter, :sponsors) + .includes(:chapter, :sponsors, :organisers) .to_a accepted_workshops = current_user.workshop_invitations.accepted .joins(:workshop) .merge(Workshop.upcoming) - .includes(workshop: %i[chapter sponsors]) + .includes(workshop: %i[chapter sponsors organisers]) .map(&:workshop) all_events(chapter_workshops + accepted_workshops) @@ -77,8 +77,8 @@ def upcoming_events_for_user end def all_events(workshops) - meeting = Meeting.includes(:venue).next - events = Event.includes(:venue, :sponsors).upcoming.take(DEFAULT_UPCOMING_EVENTS) + meeting = Meeting.includes(:venue, :organisers).next + events = Event.includes(:venue, :sponsors, :organisers).upcoming.take(DEFAULT_UPCOMING_EVENTS) [*workshops, *events, meeting].uniq.compact end