diff options
author | Paco Guzman <pacoguzmanp@gmail.com> | 2016-06-14 16:48:39 +0200 |
---|---|---|
committer | Paco Guzman <pacoguzmanp@gmail.com> | 2016-06-15 06:50:12 +0200 |
commit | 52a2b8a41001b35338bcc6d92fa4c9679c4196a8 (patch) | |
tree | 32d866b4a44ee0c301e752a8e7ae9b58467865c0 | |
parent | bf4455d14659f1fde6391164b38310d361bf407d (diff) | |
download | gitlab-ce-14320-note-grouped_awards.tar.gz |
Include user relationship when retrieving award_emoji14320-note-grouped_awards
Avoiding N+1 when showing grouped awards and when
calculating participants for awardable entities
-rw-r--r-- | CHANGELOG | 1 | ||||
-rw-r--r-- | app/models/concerns/awardable.rb | 8 |
2 files changed, 7 insertions, 2 deletions
diff --git a/CHANGELOG b/CHANGELOG index 884b9f6e9fd..d458db93ff7 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -90,6 +90,7 @@ v 8.9.0 (unreleased) - Horizontally scrolling navigation on project, group, and profile settings pages - Hide global side navigation by default - Remove tanuki logo from side navigation; center on top nav + - Include user relationships when retrieving award_emoji v 8.8.5 (unreleased) - Ensure branch cleanup regardless of whether the GitHub import process succeeds diff --git a/app/models/concerns/awardable.rb b/app/models/concerns/awardable.rb index aa4b4201250..539c7c31e30 100644 --- a/app/models/concerns/awardable.rb +++ b/app/models/concerns/awardable.rb @@ -5,7 +5,7 @@ module Awardable has_many :award_emoji, as: :awardable, dependent: :destroy if self < Participable - participant :award_emoji + participant :award_emoji_with_associations end end @@ -34,8 +34,12 @@ module Awardable end end + def award_emoji_with_associations + award_emoji.includes(:user) + end + def grouped_awards(with_thumbs: true) - awards = award_emoji.group_by(&:name) + awards = award_emoji_with_associations.group_by(&:name) if with_thumbs awards[AwardEmoji::UPVOTE_NAME] ||= [] |