I just upgraded my app from 1.2.6 to 2.2.2. When I do the rake db:migrate, I hit "uninitialized constant CachedModel." (Full stack at the end of the message.) I found out from doing a Google search that CachedModel and the initialization process created a chicken-and-egg problem long time ago. However, I thought that the problem was solved as I didn't have to anything special to make it work in 1.2.6.
BTW, if I move the require 'cached_model' before Rails::Initializer.run do |config|, it dies somewhere else. And I am pretty sure that it is not the recommended place for the require anyway.
Has anyone encountered this problem before? And how did you solve it?
Thanks, Vincent
P.S. Full stack:
uninitialized constant CachedModel /usr/lib64/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/ dependencies.rb:445:in `load_missing_constant' /usr/lib64/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/ dependencies.rb:77:in `const_missing' /usr/lib64/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/ dependencies.rb:89:in `const_missing' /usr/local/myapp/app/models/baby.rb:1 (<= class Baby < CachedModel ) /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require' /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' /usr/lib64/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/ dependencies.rb:155:in `require' /usr/lib64/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/ dependencies.rb:262:in `require_or_load' /usr/lib64/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/ dependencies.rb:221:in `depend_on' /usr/lib64/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/ dependencies.rb:133:in `require_dependency' /usr/lib64/ruby/gems/1.8/gems/rails-2.2.2/lib/initializer.rb:368:in `load_application_classes' /usr/lib64/ruby/gems/1.8/gems/rails-2.2.2/lib/initializer.rb:367:in `each' /usr/lib64/ruby/gems/1.8/gems/rails-2.2.2/lib/initializer.rb:367:in `load_application_classes' /usr/lib64/ruby/gems/1.8/gems/rails-2.2.2/lib/initializer.rb:365:in `each' /usr/lib64/ruby/gems/1.8/gems/rails-2.2.2/lib/initializer.rb:365:in `load_application_classes' /usr/lib64/ruby/gems/1.8/gems/rails-2.2.2/lib/initializer.rb:185:in `process' /usr/lib64/ruby/gems/1.8/gems/rails-2.2.2/lib/initializer.rb:112:in `send' /usr/lib64/ruby/gems/1.8/gems/rails-2.2.2/lib/initializer.rb:112:in `run' /usr/local/myapp/config/environment.rb:13 (<= Rails::Initializer.run do |config|) /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require' /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' /usr/lib64/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/ dependencies.rb:153:in `require' /usr/lib64/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/ dependencies.rb:521:in `new_constants_in' /usr/lib64/ruby/gems/1.8/gems/activesupport-2.2.2/lib/active_support/ dependencies.rb:153:in `require' /usr/lib64/ruby/gems/1.8/gems/rails-2.2.2/lib/tasks/misc.rake:3 /usr/lib64/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:617:in `call' /usr/lib64/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:617:in `execute' /usr/lib64/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:612:in `each' /usr/lib64/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:612:in `execute' /usr/lib64/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:578:in `invoke_with_call_chain' /usr/lib/ruby/1.8/monitor.rb:242:in `synchronize' /usr/lib64/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:571:in `invoke_with_call_chain' /usr/lib64/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:588:in `invoke_prerequisites' /usr/lib64/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:585:in `each' /usr/lib64/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:585:in `invoke_prerequisites' /usr/lib64/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:577:in `invoke_with_call_chain' /usr/lib/ruby/1.8/monitor.rb:242:in `synchronize' /usr/lib64/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:571:in `invoke_with_call_chain' /usr/lib64/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:564:in `invoke' /usr/lib64/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:2027:in `invoke_task' /usr/lib64/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:2005:in `top_level' /usr/lib64/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:2005:in `each' /usr/lib64/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:2005:in `top_level' /usr/lib64/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:2044:in `standard_exception_handling' /usr/lib64/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:1999:in `top_level' /usr/lib64/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:1977:in `run' /usr/lib64/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:2044:in `standard_exception_handling' /usr/lib64/ruby/gems/1.8/gems/rake-0.8.4/lib/rake.rb:1974:in `run' /usr/lib64/ruby/gems/1.8/gems/rake-0.8.4/bin/rake:31 /usr/bin/rake:19:in `load' /usr/bin/rake:19