views:

115

answers:

0

Hello,

How do I include functions from the application controller in a config.after_initialize block?

enviroment/development.rb

...

config.after_initialize do
   require 'application' unless Object.const_defined?(:ApplicationController)
   LoggedExceptionsController.class_eval do

     access_control do
       allow :admin
     end

   end     
end

This gives me the error:

Rails 2.3.2 application starting on http://0.0.0.0:3000
/opt/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': no such file to load -- application (MissingSourceFile)
    from /opt/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
    from /opt/local/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/dependencies.rb:156:in `require'
    from /opt/local/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/dependencies.rb:521:in `new_constants_in'
    from /opt/local/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/dependencies.rb:156:in `require'
    from /Users/atmorell/Sites/domain.com/config/environments/development.rb:23:in `load_environment'
    from /opt/local/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/initializer.rb:592:in `call'
    from /opt/local/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/initializer.rb:592:in `after_initialize'
    from /opt/local/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/initializer.rb:591:in `each'
    from /opt/local/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/initializer.rb:591:in `after_initialize'
    from /opt/local/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/initializer.rb:177:in `process'
    from /opt/local/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/initializer.rb:113:in `send'
    from /opt/local/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/initializer.rb:113:in `run'
    from /Users/atmorell/Sites/domain.com/config/environment.rb:9
    from /opt/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
    from /opt/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
    from /opt/local/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/dependencies.rb:156:in `require'
    from /opt/local/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/dependencies.rb:521:in `new_constants_in'
    from /opt/local/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/dependencies.rb:156:in `require'
    from /opt/local/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/commands/server.rb:84
    from /opt/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
    from /opt/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
    from script/server:3

It works if I remove the require 'application'... line and add my current_user and current_user_session method to the block. Hmmm any ideas?

Best regards. Asbjørn Morell.