From bd08fff6c55bc13337b6501ff03bb7787decab68 Mon Sep 17 00:00:00 2001 From: Yorick Peterse Date: Fri, 4 Aug 2017 16:52:26 +0200 Subject: [PATCH] Eager load project creators for project dashboards This solves an N+1 query problem where for every project we'd query the creator separately just to figure out what avatar to display. --- app/controllers/dashboard/projects_controller.rb | 6 ++++-- .../eager-load-project-creators-for-project-dashboards.yml | 4 ++++ 2 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 changelogs/unreleased/eager-load-project-creators-for-project-dashboards.yml diff --git a/app/controllers/dashboard/projects_controller.rb b/app/controllers/dashboard/projects_controller.rb index 91c1e4dff79..74fe45e1ff6 100644 --- a/app/controllers/dashboard/projects_controller.rb +++ b/app/controllers/dashboard/projects_controller.rb @@ -45,8 +45,10 @@ class Dashboard::ProjectsController < Dashboard::ApplicationController end def load_projects(finder_params) - ProjectsFinder.new(params: finder_params, current_user: current_user) - .execute.includes(:route, namespace: :route) + ProjectsFinder + .new(params: finder_params, current_user: current_user) + .execute + .includes(:route, :creator, namespace: :route) end def load_events diff --git a/changelogs/unreleased/eager-load-project-creators-for-project-dashboards.yml b/changelogs/unreleased/eager-load-project-creators-for-project-dashboards.yml new file mode 100644 index 00000000000..e550e0b2f44 --- /dev/null +++ b/changelogs/unreleased/eager-load-project-creators-for-project-dashboards.yml @@ -0,0 +1,4 @@ +--- +title: Eager load project creators for project dashboards +merge_request: +author: