From ba5baa01eba1147dacfc1bb702464c40be71d98d Mon Sep 17 00:00:00 2001 From: Dhruv Kapadia Date: Wed, 16 Jun 2010 20:01:33 -0400 Subject: [PATCH] Bugfix - fraud detection breaks users visiting more than one marketplace --- app/models/question.rb | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/app/models/question.rb b/app/models/question.rb index 798f0c3..c2cd40b 100644 --- a/app/models/question.rb +++ b/app/models/question.rb @@ -147,11 +147,14 @@ class Question < ActiveRecord::Base if params[:with_appearance] && visitor_identifier.present? visitor = current_user.visitors.find_or_create_by_identifier(visitor_identifier) - if visitor.appearances.last.nil? || visitor.appearances.last.answered? + last_appearance = visitor.appearances.find(:first, :conditions => {:question_id => self.id}, + :order => 'created_at DESC', + :limit => 1) + if last_appearance.nil?|| last_appearance.answered? @appearance = current_user.record_appearance(visitor, @prompt) else #only display a new prompt and new appearance if the old prompt has not been voted on - @appearance = visitor.appearances.last + @appearance = last_appearance possible_prompt = @appearance.prompt #edge case, it's possible that the previous prompt has become deactivated in the elapsed time -- libgit2 0.21.2