# Does engines introduce any routing constraints

**URL:** <https://www.ruby-forum.com/t/does-engines-introduce-any-routing-constraints/69709>\
**Category:** Engines\
**Created:** [September 23, 2006, 2:40am UTC](https://www.ruby-forum.com/t/does-engines-introduce-any-routing-constraints/69709 "2006-09-23T02:40:46Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![greg](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/71c47a/32.png) [@greg](https://www.ruby-forum.com/u/greg)\
**Post date:** [September 23, 2006, 2:40am UTC](https://www.ruby-forum.com/t/does-engines-introduce-any-routing-constraints/69709/1 "2006-09-23T02:40:46Z")

</div>

Hi all,

Does anyone know whether engines introduces any routing (i.e.  
routes.rbversus how url\_for/link\_for work)?

I’m having problems with url generation that seem to revolve around  
controllers that are a subdirectory down, that is have a “/” in the  
description such as “active\_rbac/login”. I’m trying to test to see if  
it  
could be due to the fact that the controller is within an engine plugin.

For example the forward slash in the controller link\_to below doesn’t  
work  
(although for normal rails controllers you can do this).

```
        <%= link_to "Login", { :controller => '/active_rbac/login',

```

:action =\> ‘login’ } %\>

In this case I get:

ActionController::RoutingError in Splash#index

Showing _app/views/layouts/site\_layout.rhtml_ where line _#21_ raised:

No url can be generated for the hash {:action=\>“login”,  
:controller=\>“active\_rbac/login”}

Extracted source (around line _#21_):

18:  
19:  
20: \<%= link\_to “Register”, {:controller =\>  
‘active\_rbac/registration’ } %\> |  
21: \<%= link\_to “Login”, { :controller =\> ‘/active\_rbac/login’,  
:action =\> ‘login’ } %\>  
22: \<% else %\>  
23: \<%= link\_to “Logout”, { :controller =\> ‘active\_rbac/login’,  
:action =\> ‘logout’ } %\>  
24: \<% end %\>

Trace of template inclusion: /app/views/layouts/splash\_layout.rhtml

RAILS\_ROOT: ./script/…/config/…  
Application Trace [http://localhost:3000/en#](http://localhost:3000/en#) | Framework  
Trace[http://localhost:3000/en#](http://localhost:3000/en#)| Full  
Trace [http://localhost:3000/en#](http://localhost:3000/en#)

generated\_code/routing/generation\_for\_controller\_active\_rbac/login.rb:58:in  
`generate_path_for_active_rbac__login' C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/routing.rb:473:in `generate\_path’  
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action\_controller/routing.rb:469:in  
`generate' C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/url_rewriter.rb:44:in `rewrite\_path’  
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action\_controller/url\_rewriter.rb:11:in  
`rewrite' C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/base.rb:488:in `url\_for’  
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action\_view/helpers/url\_helper.rb:27:in  
`url_for' C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_view/helpers/url_helper.rb:59:in `link\_to’  
#{RAILS\_ROOT}/app/views/layouts/site\_layout.rhtml:21:in  
`_run_rhtml_layouts_site_layout' #{RAILS_ROOT}/config/nested_layout.rb:7:in `inside\_layout’  
#{RAILS\_ROOT}/app/views/layouts/splash\_layout.rhtml:9:in  
`\_run\_rhtml\_layouts\_splash\_layout’  
-e:4

generated\_code/routing/generation\_for\_controller\_active\_rbac/login.rb:58:in  
`generate_path_for_active_rbac__login' C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/routing.rb:473:in `generate\_path’  
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action\_controller/routing.rb:469:in  
`generate' C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/url_rewriter.rb:44:in `rewrite\_path’  
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action\_controller/url\_rewriter.rb:11:in  
`rewrite' C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/base.rb:488:in `url\_for’  
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action\_view/helpers/url\_helper.rb:27:in  
`url_for' C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_view/helpers/url_helper.rb:59:in `link\_to’  
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action\_view/base.rb:316:in  
`compile_and_render_template' C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_view/base.rb:292:in `render\_template’  
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action\_view/base.rb:251:in  
`render_file' C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_view/base.rb:316:in `compile\_and\_render\_template’  
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action\_view/base.rb:292:in  
`render_template' C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_view/base.rb:251:in `render\_file’  
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action\_controller/layout.rb:251:in  
`render_without_benchmark' C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/benchmarking.rb:53:in `render’  
C:/InstantRails/ruby/lib/ruby/1.8/benchmark.rb:293:in `measure' C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/benchmarking.rb:53:in `render’  
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action\_controller/base.rb:942:in  
`perform_action_without_filters' C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/filters.rb:368:in `perform\_action\_without\_benchmark’  
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action\_controller/benchmarking.rb:69:in  
`perform_action_without_rescue' C:/InstantRails/ruby/lib/ruby/1.8/benchmark.rb:293:in `measure’  
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action\_controller/benchmarking.rb:69:in  
`perform_action_without_rescue' C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/rescue.rb:82:in `perform\_action’  
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action\_controller/base.rb:408:in  
`process_without_filters' C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/filters.rb:377:in `process\_without\_session\_management\_support’  
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action\_controller/session\_management.rb:117:in  
`process' C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/rails-1.1.6/lib/dispatcher.rb:38:in `dispatch’  
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/rails-1.1.6/lib/webrick\_server.rb:115:in  
`handle_dispatch' C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/rails-1.1.6/lib/webrick_server.rb:81:in `service’  
C:/InstantRails/ruby/lib/ruby/1.8/webrick/httpserver.rb:104:in `service' C:/InstantRails/ruby/lib/ruby/1.8/webrick/httpserver.rb:65:in `run’  
C:/InstantRails/ruby/lib/ruby/1.8/webrick/server.rb:173:in  
`start_thread' C:/InstantRails/ruby/lib/ruby/1.8/webrick/server.rb:162:in `start\_thread’  
C:/InstantRails/ruby/lib/ruby/1.8/webrick/server.rb:95:in `start' C:/InstantRails/ruby/lib/ruby/1.8/webrick/server.rb:92:in `start’  
C:/InstantRails/ruby/lib/ruby/1.8/webrick/server.rb:23:in `start' C:/InstantRails/ruby/lib/ruby/1.8/webrick/server.rb:82:in `start’  
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/rails-1.1.6/lib/webrick\_server.rb:67:in  
`dispatch' C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/rails-1.1.6/lib/commands/servers/webrick.rb:59 C:/InstantRails/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:21:in `require’  
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activesupport-1.3.1/lib/active\_support/dependencies.rb:147:in  
`require' C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/rails-1.1.6/lib/commands/server.rb:30 C:/InstantRails/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:21:in `require’  
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activesupport-1.3.1/lib/active\_support/dependencies.rb:147:in  
`require’  
script/server:3

generated\_code/routing/generation\_for\_controller\_active\_rbac/login.rb:58:in  
`generate_path_for_active_rbac__login' C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/routing.rb:473:in `generate\_path’  
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action\_controller/routing.rb:469:in  
`generate' C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/url_rewriter.rb:44:in `rewrite\_path’  
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action\_controller/url\_rewriter.rb:11:in  
`rewrite' C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/base.rb:488:in `url\_for’  
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action\_view/helpers/url\_helper.rb:27:in  
`url_for' C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_view/helpers/url_helper.rb:59:in `link\_to’  
#{RAILS\_ROOT}/app/views/layouts/site\_layout.rhtml:21:in  
`_run_rhtml_layouts_site_layout' C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_view/base.rb:316:in `compile\_and\_render\_template’  
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action\_view/base.rb:292:in  
`render_template' C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_view/base.rb:251:in `render\_file’  
#{RAILS\_ROOT}/config/nested\_layout.rb:7:in `inside_layout' #{RAILS_ROOT}/app/views/layouts/splash_layout.rhtml:9:in `\_run\_rhtml\_layouts\_splash\_layout’  
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action\_view/base.rb:316:in  
`compile_and_render_template' C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_view/base.rb:292:in `render\_template’  
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action\_view/base.rb:251:in  
`render_file' C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/layout.rb:251:in `render\_without\_benchmark’  
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action\_controller/benchmarking.rb:53:in  
`render' C:/InstantRails/ruby/lib/ruby/1.8/benchmark.rb:293:in `measure’  
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action\_controller/benchmarking.rb:53:in  
`render' C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/base.rb:942:in `perform\_action\_without\_filters’  
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action\_controller/filters.rb:368:in  
`perform_action_without_benchmark' C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/benchmarking.rb:69:in `perform\_action\_without\_rescue’  
C:/InstantRails/ruby/lib/ruby/1.8/benchmark.rb:293:in `measure' C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/benchmarking.rb:69:in `perform\_action\_without\_rescue’  
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action\_controller/rescue.rb:82:in  
`perform_action' C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/base.rb:408:in `process\_without\_filters’  
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action\_controller/filters.rb:377:in  
`process_without_session_management_support' C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/session_management.rb:117:in `process’  
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/rails-1.1.6/lib/dispatcher.rb:38:in  
`dispatch' C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/rails-1.1.6/lib/webrick_server.rb:115:in `handle\_dispatch’  
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/rails-1.1.6/lib/webrick\_server.rb:81:in  
`service' C:/InstantRails/ruby/lib/ruby/1.8/webrick/httpserver.rb:104:in `service’  
C:/InstantRails/ruby/lib/ruby/1.8/webrick/httpserver.rb:65:in `run' C:/InstantRails/ruby/lib/ruby/1.8/webrick/server.rb:173:in `start\_thread’  
C:/InstantRails/ruby/lib/ruby/1.8/webrick/server.rb:162:in  
`start_thread' C:/InstantRails/ruby/lib/ruby/1.8/webrick/server.rb:95:in `start’  
C:/InstantRails/ruby/lib/ruby/1.8/webrick/server.rb:92:in `start' C:/InstantRails/ruby/lib/ruby/1.8/webrick/server.rb:23:in `start’  
C:/InstantRails/ruby/lib/ruby/1.8/webrick/server.rb:82:in `start' C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/rails-1.1.6/lib/webrick_server.rb:67:in `dispatch’  
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/rails-1.1.6/lib/commands/servers/webrick.rb:59  
C:/InstantRails/ruby/lib/ruby/site\_ruby/1.8/rubygems/custom\_require.rb:21:in  
`require' C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activesupport-1.3.1/lib/active_support/dependencies.rb:147:in `require’  
C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/rails-1.1.6/lib/commands/server.rb:30  
C:/InstantRails/ruby/lib/ruby/site\_ruby/1.8/rubygems/custom\_require.rb:21:in  
`require' C:/InstantRails/ruby/lib/ruby/gems/1.8/gems/activesupport-1.3.1/lib/active_support/dependencies.rb:147:in `require’  
script/server:3  
-e:4

Request

_Parameters_: {“locale”=\>“en”}

Show session dump [http://localhost:3000/en#](http://localhost:3000/en#)

* * *

:locale: en  
flash: !map:ActionController::Flash::FlashHash {}

Response _Headers_: {“Status”=\>“200 OK”, “cookie”=\>[],  
“Cache-Control”=\>“no-cache”}
