summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDouglas Barbosa Alexandre <dbalexandre@gmail.com>2019-09-10 18:29:32 -0300
committerDouglas Barbosa Alexandre <dbalexandre@gmail.com>2019-09-10 18:54:36 -0300
commita38aa7e3df0f91ebaa017b29cd508958fa7b0df1 (patch)
tree35098e0d63845fc20049f40ad5bbda00416fff55
parentcfe77ce4a3494b9c1516fe7e915f76b21a68e763 (diff)
downloadgitlab-ce-a38aa7e3df0f91ebaa017b29cd508958fa7b0df1.tar.gz
Fix N+1s queries
-rw-r--r--app/controllers/projects/forks_controller.rb8
-rw-r--r--app/models/project.rb1
2 files changed, 7 insertions, 2 deletions
diff --git a/app/controllers/projects/forks_controller.rb b/app/controllers/projects/forks_controller.rb
index e11747ce0a3..1bb21857dcf 100644
--- a/app/controllers/projects/forks_controller.rb
+++ b/app/controllers/projects/forks_controller.rb
@@ -2,6 +2,7 @@
class Projects::ForksController < Projects::ApplicationController
include ContinueParams
+ include RendersMemberAccess
# Authorize
before_action :whitelist_query_limiting, only: [:create]
@@ -9,6 +10,7 @@ class Projects::ForksController < Projects::ApplicationController
before_action :authorize_download_code!
before_action :authenticate_user!, only: [:new, :create]
+ # rubocop: disable CodeReuse/ActiveRecord
def index
@total_forks_count = project.forks.size
@public_forks_count = project.forks.public_only.size
@@ -16,7 +18,10 @@ class Projects::ForksController < Projects::ApplicationController
@internal_forks_count = @total_forks_count - @public_forks_count - @private_forks_count
@forks = ForkProjectsFinder.new(project, params: params.merge(search: params[:filter_projects]), current_user: current_user).execute
- @forks = @forks.eager_load_namespace_and_owner.inc_creator.with_route.page(params[:page])
+ @forks = @forks.includes(:route, :creator, :group, namespace: [:route, :owner])
+ .page(params[:page])
+
+ prepare_projects_for_rendering(@forks)
respond_to do |format|
format.html
@@ -28,6 +33,7 @@ class Projects::ForksController < Projects::ApplicationController
end
end
end
+ # rubocop: enable CodeReuse/ActiveRecord
def new
@namespaces = current_user.manageable_namespaces
diff --git a/app/models/project.rb b/app/models/project.rb
index 38d8c62f3bb..d948410e397 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -417,7 +417,6 @@ class Project < ApplicationRecord
scope :with_merge_requests_available_for_user, ->(current_user) { with_feature_available_for_user(:merge_requests, current_user) }
scope :with_merge_requests_enabled, -> { with_feature_enabled(:merge_requests) }
scope :with_remote_mirrors, -> { joins(:remote_mirrors).where(remote_mirrors: { enabled: true }).distinct }
- scope :inc_creator, -> { includes(:creator) }
scope :with_group_runners_enabled, -> do
joins(:ci_cd_settings)