Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class AddCounterCachesToModels < ActiveRecord::Migration
- def self.up
- add_column(:decks, :slides_count, :integer)
- add_column(:slides, :slide_riffs_count, :integer)
- add_column(:slide_riffs, :slide_riff_comments_count, :integer)
- add_column(:decks, :deck_comments_count, :integer)
- add_column(:commenters, :deck_comments_count, :integer)
- add_column(:users, :decks_count, :integer)
- add_column(:commenters, :slide_riff_annotations_count, :integer)
- add_column(:slide_riffs, :slide_riff_annotations_count, :integer)
- add_column(:commenters, :slide_riff_comments_count, :integer)
- #reset counter caches
- self.reset_counter_cache_for(Deck, :slides)
- self.reset_counter_cache_for(Slide, :slide_riffs)
- self.reset_counter_cache_for(SlideRiff, :slide_riff_comments)
- self.reset_counter_cache_for(Deck, :deck_comments)
- self.reset_counter_cache_for(Commenter, :deck_comments)
- self.reset_counter_cache_for(User, :decks)
- self.reset_counter_cache_for(Commenter, :slide_riff_annotations)
- self.reset_counter_cache_for(SlideRiff, :slide_riff_annotations)
- self.reset_counter_cache_for(Commenter, :slide_riff_comments)
- end
- def self.down
- remove_column(:decks, :slides_count)
- remove_column(:slides, :slide_riffs_count)
- remove_column(:slide_riffs, :slide_riff_comments_count)
- remove_column(:decks, :deck_comments_count)
- remove_column(:commenters, :deck_comments_count)
- remove_column(:users, :decks_count)
- remove_column(:commenters, :slide_riff_annotations_count)
- remove_column(:slide_riffs, :slide_riff_annotations_count)
- remove_column(:commenters, :slide_riff_comments_count)
- end
- private
- def self.reset_counter_cache_for(klass, cache_column)
- klass.all.each {|record| klass.reset_counters(record.id, cache_column)}
- end
- end
Add Comment
Please, Sign In to add comment