048_remove_count_caching.rb
上传用户:netsea168
上传日期:2022-07-22
资源大小:4652k
文件大小:1k
- class RemoveCountCaching < ActiveRecord::Migration
- class Content < ActiveRecord::Base
- include BareMigration
- def count_children_of_type(type)
- self.class.find(:all,
- :conditions => ["article_id = ? and type = ?",
- self.id, type]).size
- end
- def correct_counts
- self.comments_count = self.count_children_of_type('Comment')
- self.trackbacks_count = self.count_children_of_type('Trackback')
- end
- end
- def self.up
- remove_column :contents, :comments_count
- remove_column :contents, :trackbacks_count
- end
- def self.down
- modify_tables_and_update(
- [:add_column, Content, :comments_count, :integer],
- [:add_column, Content, :trackbacks_count, :integer]) do |a|
- if not $schema_generator
- a.correct_counts
- end
- end
- end
- end