Lighthouse has a new layout. Prefer the old one? Return to the old layout, and switch back any time from the link at the top of each page.

This project is archived and is in readonly mode.

[BUG] Routes matching a :controller /regexp/ raise NameError

#642
#admin controller routes
map.connect ':controller/:action/:id', :requirements => { :controller => /admin[\/]?[\w\d]*/ }

GET /admin/doesnt_exist

will raise a NameError

when it tries to do,

"Admin::DoesntExistController".constantize

and hence we get a 500 error.

Really we want this exception to be caught,

and fall through to the next level,

and eventually hit a RoutingError

and a 404.

Had a look at the routing code,

but haven't quite worked out how to fix it.

Reported by MatthewRudy · July 17th, 2008 @ 01:39 PM

State: stale
Milestone: 2.x
Assigned to: nobody
Importance: none

Activity

  1. MatthewRudy
    MatthewRudy
     NameError in Admin/doesnt existController#index
    
    uninitialized constant Admin::DoesntExistController
    
    RAILS_ROOT: /Users/matthew/code/aspire
    Application Trace | Framework Trace | Full Trace
    
    vendor/rails/activesupport/lib/active_support/dependencies.rb:263:in `load_missing_constant'
    vendor/rails/activesupport/lib/active_support/dependencies.rb:453:in `const_missing'
    vendor/rails/activesupport/lib/active_support/inflector.rb:260:in `constantize'
    vendor/rails/activesupport/lib/active_support/core_ext/string/inflections.rb:151:in `constantize'
    vendor/rails/actionpack/lib/action_controller/routing.rb:1426:in `recognize'
    vendor/rails/actionpack/lib/action_controller/dispatcher.rb:170:in `handle_request'
    vendor/rails/actionpack/lib/action_controller/dispatcher.rb:115:in `dispatch'
    vendor/rails/actionpack/lib/action_controller/dispatcher.rb:126:in `dispatch_cgi'
    vendor/rails/actionpack/lib/action_controller/dispatcher.rb:9:in `dispatch'
    /Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/rails.rb:76:in `process'
    /Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/rails.rb:74:in `synchronize'
    /Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/rails.rb:74:in `process'
    /Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:159:in `process_client'
    /Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:158:in `each'
    /Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:158:in `process_client'
    /Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `run'
    /Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `initialize'
    /Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `new'
    /Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `run'
    /Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:in `initialize'
    /Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:in `new'
    /Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:in `run'
    /Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:282:in `run'
    /Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:281:in `each'
    /Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/configurator.rb:281:in `run'
    /Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:128:in `run'
    /Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/lib/mongrel/command.rb:212:in `run'
    /Library/Ruby/Gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:281
    

    (from rails 2.0.2, similar traceback from edge)

    July 17th, 2008 @ 01:40 PM

  2. josh
    josh
    • State changed from new to stale

    Staling out, please reopen if this is still a problem.

    October 28th, 2008 @ 04:26 PM