diff options
author | Sean McGivern <sean@gitlab.com> | 2019-03-22 15:51:14 +0000 |
---|---|---|
committer | Sean McGivern <sean@gitlab.com> | 2019-03-25 12:12:44 +0000 |
commit | c5f9b2be826c05e5f06d424f5c110976ad0b68c4 (patch) | |
tree | 6c7d4e5f2beb1b4d942bfc409a8b1e44563b35ad /app/models/members | |
parent | 05c6de9867f25aa5e6373d7b32d925572bdb4686 (diff) | |
download | gitlab-ce-c5f9b2be826c05e5f06d424f5c110976ad0b68c4.tar.gz |
Remove N+1 queries from users autocomplete
Both of these were related to groups:
1. We need to preload routes (using the `with_route` scope) if we're
going to get the group's path.
2. We were counting each group's members separately.
They're in the same commit because the spec for N+1 detection wouldn't
pass with only one of these fixes.
Diffstat (limited to 'app/models/members')
-rw-r--r-- | app/models/members/group_member.rb | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/app/models/members/group_member.rb b/app/models/members/group_member.rb index 2c9e1ba1d80..510f856087d 100644 --- a/app/models/members/group_member.rb +++ b/app/models/members/group_member.rb @@ -14,6 +14,8 @@ class GroupMember < Member scope :in_groups, ->(groups) { where(source_id: groups.select(:id)) } + scope :count_users_by_group_id, -> { joins(:user).group(:source_id).count } + after_create :update_two_factor_requirement, unless: :invite? after_destroy :update_two_factor_requirement, unless: :invite? |