From 52a2b8a41001b35338bcc6d92fa4c9679c4196a8 Mon Sep 17 00:00:00 2001 From: Paco Guzman Date: Tue, 14 Jun 2016 16:48:39 +0200 Subject: Include user relationship when retrieving award_emoji Avoiding N+1 when showing grouped awards and when calculating participants for awardable entities --- app/models/concerns/awardable.rb | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'app/models/concerns/awardable.rb') 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] ||= [] -- cgit v1.2.1