Commit 47e920d678c6e6800db783568c0a6162b4bbdd14
1 parent
e7dc0a3b
Exists in
master
and in
1 other branch
Pruning errant skips caused by bug
Showing
1 changed file
with
31 additions
and
1 deletions
Show diff stats
lib/tasks/prune_db.rake
... | ... | @@ -30,7 +30,37 @@ namespace :prune_db do |
30 | 30 | else |
31 | 31 | puts "Could not find any bad votes. Yay." |
32 | 32 | end |
33 | - | |
33 | + end | |
34 | + | |
35 | + task(:associate_skips_with_appearances => :environment) do | |
36 | + skips_to_fix = Skip.find(:all, :conditions => {:appearance_id => nil}) | |
37 | + skips_to_fix.each do |skip| | |
38 | + puts "Skip #{skip.id} : " | |
39 | + possible_appearances = skip.skipper.appearances.find(:all, :conditions => {:prompt_id => skip.prompt_id}) | |
40 | + if possible_appearances.nil? || possible_appearances.empty? | |
41 | + puts " I couldn't find any matches!" | |
42 | + skip.delete | |
43 | + next | |
44 | + end | |
45 | + if possible_appearances.size > 1 | |
46 | + puts " More than one possible appearance" | |
47 | + possible_appearances.delete_if{|a| a.answered?} | |
48 | + if possible_appearances.size > 1 || possible_appearances.size == 0 | |
49 | + puts" And I couldn't narrow it down.... moving on" | |
50 | + skip.delete | |
51 | + next | |
52 | + end | |
53 | + end | |
54 | + possible_appearance = possible_appearances.first | |
55 | + if possible_appearance.answered? | |
56 | + puts " This appearance has been answered already! Moving on" | |
57 | + skip.delete | |
58 | + else | |
59 | + puts " MATCH" | |
60 | + skip.appearance_id = possible_appearance.id | |
61 | + skip.save! | |
62 | + end | |
63 | + end | |
34 | 64 | end |
35 | 65 | |
36 | 66 | end | ... | ... |