Thanks Frederic and Duncan,

FYI: here's the complete migration for the simple test case that adds 
a counter_cache AND sets the value.

class AddCounterCacheToLearners < ActiveRecord::Migration
   class Learner < ActiveRecord::Base
     has_many :learner_sessions
     def reset_column_information
       # re-implement reset_column_information functionality here
       generated_methods.each { |name| undef_method(name) }
       @column_names = @columns = @columns_hash = @content_columns = 
@dynamic_methods_hash = @generated_methods = @inheritance_column = nil
     end
   end

   def self.up
     add_column :learners, :learner_sessions_count, :integer, :default => 0
     Learner.reset_column_information
     Learner.find(:all).each do |learner|
       count = learner.learner_sessions.count
       learner.update_attribute(:learner_sessions_count, count)
     end
   end

   def self.down
     remove_column :learners, :learner_sessions_count
   end
end


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Core" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-core?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to