diff options
author | Yorick Peterse <yorickpeterse@gmail.com> | 2017-08-04 15:44:44 +0200 |
---|---|---|
committer | Yorick Peterse <yorickpeterse@gmail.com> | 2017-08-07 12:38:32 +0200 |
commit | 4a915c739d502a8b1d2a019f4352d46a3be3d7e0 (patch) | |
tree | 99c4e8a7d7557f7d128999ea1ae91f913f28c9ce /app/models/user.rb | |
parent | f77fda6437bfeb946510abdf5c56872af392f624 (diff) | |
download | gitlab-ce-4a915c739d502a8b1d2a019f4352d46a3be3d7e0.tar.gz |
Remove redundant query from User#recent_push
The "events" table has a foreign key on "events.project_id" with a
cascading delete. As such it's impossible for an event to have a
non-existing project ID.
Diffstat (limited to 'app/models/user.rb')
-rw-r--r-- | app/models/user.rb | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/app/models/user.rb b/app/models/user.rb index 267eebb42ff..afcadfe484e 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -646,16 +646,14 @@ class User < ActiveRecord::Base events = events.where(project_id: project_ids) if project_ids # Use the latest event that has not been pushed or merged recently - events.recent.find do |event| - project = Project.find_by_id(event.project_id) - next unless project - - if project.repository.branch_exists?(event.branch_name) - merge_requests = MergeRequest.where("created_at >= ?", event.created_at) - .where(source_project_id: project.id, - source_branch: event.branch_name) - merge_requests.empty? - end + events.includes(:project).recent.find do |event| + next unless event.project.repository.branch_exists?(event.branch_name) + + merge_requests = MergeRequest.where("created_at >= ?", event.created_at) + .where(source_project_id: event.project.id, + source_branch: event.branch_name) + + merge_requests.empty? end end |