Rails 3 backtrace

Migrating my app to Rails 3 is everything but trivial. But most of the time it is not due to API changes...

First, it was difficult to get my tests to run (not pass, run). The most difficult part was Webrat and I ended up changing the suite to Capybara, but today David Chelimsky pointed me that I should configure Webrat to :rack instead of :rails, but I'm not sure if I'm going back to Webrat again...

Then, my tests aren't passing because of a probably bug in Rails:


While the bug is not fixed, I'm trying to get the rest failing tests to pass...

Then, I got a really strange issue, that I'm still trying to understand. If I open a rails console in test environment only, I get I18n.locale == :en and I18n.default_locale == :'pt-BR', while in development mode I18n.locale == :'pt-BR' as expected...

I have no idea how to debug this, so I created a fresh new app and starting replicating my app in the new application. This behavior didn't ocurred in the fresh app, but as I copied app, libs, Gemfile and initializers to the new app the issue is happening again.

Then I tried to remove all plugins and run the console, expecting for errors, of course. But I thought I would get some meaningful backtrace so that I could know where the plugins are being needed and comment the respective code. But instead, I got:

r c test (alias r=rails)
/home/rodrigo/.rvm/gems/ruby-head@rails3/gems/activesupport-3.0.0.beta4/lib/active_support/dependencies.rb:277:in `rescue in depend_on': No such file to load -- prawn (LoadError)
         from /home/rodrigo/.rvm/gems/ruby-head@rails3/gems/activesupport-3.0.0.beta4/lib/active_support/dependencies.rb:272:in `depend_on'
         from /home/rodrigo/.rvm/gems/ruby-head@rails3/gems/activesupport-3.0.0.beta4/lib/active_support/dependencies.rb:189:in `require_dependency'
         from /home/rodrigo/.rvm/gems/ruby-head@rails3/gems/railties-3.0.0.beta4/lib/rails/engine.rb:138:in `block (2 levels) in eager_load!'
         from /home/rodrigo/.rvm/gems/ruby-head@rails3/gems/railties-3.0.0.beta4/lib/rails/engine.rb:137:in `each'
         from /home/rodrigo/.rvm/gems/ruby-head@rails3/gems/railties-3.0.0.beta4/lib/rails/engine.rb:137:in `block in eager_load!'
         from /home/rodrigo/.rvm/gems/ruby-head@rails3/gems/railties-3.0.0.beta4/lib/rails/engine.rb:135:in `each'
         from /home/rodrigo/.rvm/gems/ruby-head@rails3/gems/railties-3.0.0.beta4/lib/rails/engine.rb:135:in `eager_load!'
         from /home/rodrigo/.rvm/gems/ruby-head@rails3/gems/railties-3.0.0.beta4/lib/rails/application.rb:99:in `eager_load!'
         from /home/rodrigo/.rvm/gems/ruby-head@rails3/gems/railties-3.0.0.beta4/lib/rails/application/finisher.rb:41:in `block in <module:Finisher>'
         from /home/rodrigo/.rvm/gems/ruby-head@rails3/gems/railties-3.0.0.beta4/lib/rails/initializable.rb:25:in `instance_exec'
         from /home/rodrigo/.rvm/gems/ruby-head@rails3/gems/railties-3.0.0.beta4/lib/rails/initializable.rb:25:in `run'
         from /home/rodrigo/.rvm/gems/ruby-head@rails3/gems/railties-3.0.0.beta4/lib/rails/initializable.rb:55:in `block in run_initializers'
         from /home/rodrigo/.rvm/gems/ruby-head@rails3/gems/railties-3.0.0.beta4/lib/rails/initializable.rb:54:in `each'
         from /home/rodrigo/.rvm/gems/ruby-head@rails3/gems/railties-3.0.0.beta4/lib/rails/initializable.rb:54:in `run_initializers'
         from /home/rodrigo/.rvm/gems/ruby-head@rails3/gems/railties-3.0.0.beta4/lib/rails/application.rb:119:in `initialize!'
         from /home/rodrigo/.rvm/gems/ruby-head@rails3/gems/railties-3.0.0.beta4/lib/rails/application.rb:81:in `method_missing'
         from /home/rodrigo/temp/rails3/teste/config/environment.rb:5:in `<top (required)>'
         from /home/rodrigo/.rvm/gems/ruby-head@rails3/gems/activesupport-3.0.0.beta4/lib/active_support/dependencies.rb:212:in `require'
         from /home/rodrigo/.rvm/gems/ruby-head@rails3/gems/activesupport-3.0.0.beta4/lib/active_support/dependencies.rb:212:in `block in require'
         from /home/rodrigo/.rvm/gems/ruby-head@rails3/gems/activesupport-3.0.0.beta4/lib/active_support/dependencies.rb:198:in `block in load_dependency'
         from /home/rodrigo/.rvm/gems/ruby-head@rails3/gems/activesupport-3.0.0.beta4/lib/active_support/dependencies.rb:554:in `new_constants_in'
         from /home/rodrigo/.rvm/gems/ruby-head@rails3/gems/activesupport-3.0.0.beta4/lib/active_support/dependencies.rb:198:in `load_dependency'
         from /home/rodrigo/.rvm/gems/ruby-head@rails3/gems/activesupport-3.0.0.beta4/lib/active_support/dependencies.rb:212:in `require'
         from /home/rodrigo/.rvm/gems/ruby-head@rails3/gems/railties-3.0.0.beta4/lib/rails/application.rb:94:in `require_environment!'
         from /home/rodrigo/.rvm/gems/ruby-head@rails3/gems/railties-3.0.0.beta4/lib/rails/application.rb:81:in `method_missing'
         from /home/rodrigo/.rvm/gems/ruby-head@rails3/gems/railties-3.0.0.beta4/lib/rails/commands.rb:22:in `<top (required)>'
         from script/rails:6:in `require'
         from script/rails:6:in `<main>'

The backtraces used to be much better in Rails 2... How can I know who is missing Prawn? Another thing that is bothering me is that the console is much slower to start than in Rails 2... Does someone else feels the same?

Don't get me wrong. Rails 3 have several goodies, and ActiveModel was something I was particularly interested in the new ActiveRecord API (since it resembles the excelent Sequel gem) and ActiveModel (I was forced to use the now dead PassiveRecord alongside with Validatable gem because I couldn't find a port of ActiveModel to Rails2 - now I am finally able to use ActiveModel with Serialization and Validations modules). I think there are several wins in Rails 3, but it is being really hard to port my simple app to Rails 3 and the problem is not the API changes, which I could get rid of the deprecation warnings in a few hours...

What I would like to understand is why other parts of Rails seems to have got worse, like console starting time and meaningless backtraces...

Does anyone can help me with ideas of how to debug the strange I18n issue and how to get a meaningful backtrace?

Thanks in advance and good work guys,