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 | ... | ... |