From f67001932599c3d0a0c69b3f60036fe68a25a42b Mon Sep 17 00:00:00 2001 From: rgarcia Date: Thu, 10 May 2018 15:38:46 +0200 Subject: [PATCH] Deal gracefully with recommendations of hidden proposals We were seeing an exceptions in the home page when displaying recommendations. This was due to trying to load tags of hidden proposals With this commit we are skipping proposals that that have been hidden, which will hopefully solve this exception --- app/models/user.rb | 3 ++- spec/models/user_spec.rb | 9 +++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/app/models/user.rb b/app/models/user.rb index 47e7f8c2c..67fe5d104 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -328,7 +328,8 @@ class User < ActiveRecord::Base end def interests - follows.map{|follow| follow.followable.tags.map(&:name)}.flatten.compact.uniq + followables = follows.map(&:followable) + followables.compact.map { |followable| followable.tags.map(&:name) }.flatten.compact.uniq end private diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 25084e4d1..c201fc03c 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -667,6 +667,15 @@ describe User do expect(user.interests).to eq ["Sport"] end + it "deals gracefully with hidden proposals" do + proposal = create(:proposal, tag_list: "Sport") + create(:follow, followable: proposal, user: user) + + proposal.hide + + expect(user.interests).to eq [] + end + it "discards followed objects duplicated tags" do proposal1 = create(:proposal, tag_list: "Sport") proposal2 = create(:proposal, tag_list: "Sport")