Commit 99801f4673c399db5b8514b377de1094580995a9
Exists in
master
and in
1 other branch
Merge branch 'master' of github.com:allourideas/pairwise-api
Showing
2 changed files
with
8 additions
and
5 deletions
Show diff stats
app/models/choice.rb
@@ -12,6 +12,12 @@ class Choice < ActiveRecord::Base | @@ -12,6 +12,12 @@ class Choice < ActiveRecord::Base | ||
12 | has_many :flags | 12 | has_many :flags |
13 | has_many :prompts_on_the_left, :class_name => "Prompt", :foreign_key => "left_choice_id" | 13 | has_many :prompts_on_the_left, :class_name => "Prompt", :foreign_key => "left_choice_id" |
14 | has_many :prompts_on_the_right, :class_name => "Prompt", :foreign_key => "right_choice_id" | 14 | has_many :prompts_on_the_right, :class_name => "Prompt", :foreign_key => "right_choice_id" |
15 | + | ||
16 | + | ||
17 | + has_many :appearances_on_the_left, :through => :prompts_on_the_left, :source => :appearances | ||
18 | + has_many :appearances_on_the_right, :through => :prompts_on_the_right, :source => :appearances | ||
19 | + has_many :skips_on_the_left, :through => :prompts_on_the_left, :source => :skips | ||
20 | + has_many :skips_on_the_right, :through => :prompts_on_the_right, :source => :skips | ||
15 | named_scope :active, :conditions => { :active => true } | 21 | named_scope :active, :conditions => { :active => true } |
16 | named_scope :inactive, :conditions => { :active => false} | 22 | named_scope :inactive, :conditions => { :active => false} |
17 | 23 |
lib/tasks/test_api.rake
@@ -64,11 +64,8 @@ namespace :test_api do | @@ -64,11 +64,8 @@ namespace :test_api do | ||
64 | 64 | ||
65 | def verify_choice_appearances_and_votes(choice) | 65 | def verify_choice_appearances_and_votes(choice) |
66 | success_message = "Choice has more appearances than votes and skips" | 66 | success_message = "Choice has more appearances than votes and skips" |
67 | - prompts_on_left = choice.prompts_on_the_left.map { |p| p.id } | ||
68 | - prompts_on_right = choice.prompts_on_the_right.map { |p| p.id } | ||
69 | - all_prompt_ids = prompts_on_left + prompts_on_right | ||
70 | - all_appearances = Appearance.count(:conditions => { :prompt_id => all_prompt_ids}) | ||
71 | - skips = Skip.count(:conditions => {:prompt_id => all_prompt_ids}) | 67 | + all_appearances = choice.appearances_on_the_left.count + choice.appearances_on_the_right.count |
68 | + skips = choice.skips_on_the_left.count + choice.skips_on_the_right.count | ||
72 | 69 | ||
73 | if all_appearances < choice.wins + choice.losses + skips | 70 | if all_appearances < choice.wins + choice.losses + skips |
74 | error_message = "Choice #{choice.id} in Question ##{choice.question_id} has fewer appearances than wins + losses + skips" | 71 | error_message = "Choice #{choice.id} in Question ##{choice.question_id} has fewer appearances than wins + losses + skips" |