diff options
author | Yorick Peterse <yorickpeterse@gmail.com> | 2018-04-05 14:19:24 +0300 |
---|---|---|
committer | Sean McGivern <sean@gitlab.com> | 2018-04-09 13:58:06 +0300 |
commit | 20fdbbe86a6cffbf467f08d50a0d8ef0f5c87f50 (patch) | |
tree | 771a649785183c6d355483538a69a66824ad320c /app/models/user.rb | |
parent | 63ab7c0f009001b99f6e7d7a7f21dadde1e6b969 (diff) |
Use Goldiloader for handling N+1 queries
Goldiloader (https://github.com/salsify/goldiloader) can eager load
associations automatically. This removes the need for adding "includes"
calls in a variety of different places. This also comes with the added
benefit of not having to eager load data if it's not used.
Diffstat (limited to 'app/models/user.rb')
-rw-r--r-- | app/models/user.rb | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/app/models/user.rb b/app/models/user.rb index 2b95be3f888..c7e1dfaf595 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -96,9 +96,9 @@ class User < ActiveRecord::Base # Groups has_many :members has_many :group_members, -> { where(requested_at: nil) }, source: 'GroupMember' - has_many :groups, through: :group_members - has_many :owned_groups, -> { where members: { access_level: Gitlab::Access::OWNER } }, through: :group_members, source: :group - has_many :masters_groups, -> { where members: { access_level: Gitlab::Access::MASTER } }, through: :group_members, source: :group + has_many :groups, -> { auto_include(false) }, through: :group_members + has_many :owned_groups, -> { where(members: { access_level: Gitlab::Access::OWNER }).auto_include(false) }, through: :group_members, source: :group + has_many :masters_groups, -> { where(members: { access_level: Gitlab::Access::MASTER }).auto_include(false) }, through: :group_members, source: :group # Projects has_many :groups_projects, through: :groups, source: :projects |