diff --git a/app/models/question.rb b/app/models/question.rb index 39f2c42..11d2f55 100644 --- a/app/models/question.rb +++ b/app/models/question.rb @@ -207,7 +207,7 @@ class Question < ActiveRecord::Base if params[:with_visitor_stats] visitor = current_user.visitors.find_or_create_by_identifier(visitor_identifier) - result.merge!(:visitor_votes => visitor.votes.count(:conditions => {:question_id => self.id})) + result.merge!(:visitor_votes => Vote.find_without_default_scope(:all, :conditions => {:voter_id => visitor, :question_id => self.id}).length) result.merge!(:visitor_ideas => visitor.choices.count) end diff --git a/app/models/vote.rb b/app/models/vote.rb index 1cf7f87..34d610a 100644 --- a/app/models/vote.rb +++ b/app/models/vote.rb @@ -25,6 +25,12 @@ class Vote < ActiveRecord::Base after_create :update_winner_choice, :update_loser_choice after_save :update_cached_values_based_on_flags + def self.find_without_default_scope(*args) + with_exclusive_scope() do + find(*args) + end + end + def update_winner_choice choice.reload # make sure we're using updated counter values choice.compute_score! -- libgit2 0.21.2