diff options
author | Jan De Poorter <jan@defv.be> | 2010-02-12 11:39:19 +0100 |
---|---|---|
committer | Jeremy Kemper <jeremy@bitsweat.net> | 2010-03-07 14:36:26 -0800 |
commit | dfc7ff64298e1a0656639a630cc0ddbf93c1eeb9 (patch) | |
tree | da8cdf63e2e9378be320d0711d327221a929d8aa | |
parent | aa758b93889ea879f084948c71dcd47c0275fb30 (diff) | |
download | rails-dfc7ff64298e1a0656639a630cc0ddbf93c1eeb9.tar.gz rails-dfc7ff64298e1a0656639a630cc0ddbf93c1eeb9.tar.bz2 rails-dfc7ff64298e1a0656639a630cc0ddbf93c1eeb9.zip |
Make sure nested singular resources get the correct name
[#3911 state:committed]
Signed-off-by: Jeremy Kemper <jeremy@bitsweat.net>
-rw-r--r-- | actionpack/lib/action_dispatch/routing/mapper.rb | 5 | ||||
-rw-r--r-- | actionpack/test/dispatch/routing_test.rb | 10 |
2 files changed, 14 insertions, 1 deletions
diff --git a/actionpack/lib/action_dispatch/routing/mapper.rb b/actionpack/lib/action_dispatch/routing/mapper.rb index 52a8df4273..7a33259054 100644 --- a/actionpack/lib/action_dispatch/routing/mapper.rb +++ b/actionpack/lib/action_dispatch/routing/mapper.rb @@ -452,7 +452,10 @@ module ActionDispatch scope(:path => resource.name.to_s, :controller => resource.controller) do with_scope_level(:resource, resource) do - yield if block_given? + + scope(:name_prefix => resource.name.to_s) do + yield if block_given? + end get :show if resource.actions.include?(:show) post :create if resource.actions.include?(:create) diff --git a/actionpack/test/dispatch/routing_test.rb b/actionpack/test/dispatch/routing_test.rb index 37c2f1421b..b46276c453 100644 --- a/actionpack/test/dispatch/routing_test.rb +++ b/actionpack/test/dispatch/routing_test.rb @@ -24,6 +24,8 @@ class TestRoutingMapper < ActionDispatch::IntegrationTest resource :session do get :create + + resource :info end match 'account/logout' => redirect("/logout"), :as => :logout_redirect @@ -234,6 +236,14 @@ class TestRoutingMapper < ActionDispatch::IntegrationTest end end + def test_session_info_nested_singleton_resource + with_test_routes do + get '/session/info' + assert_equal 'infos#show', @response.body + assert_equal '/session/info', session_info_path + end + end + def test_redirect_modulo with_test_routes do get '/account/modulo/name' |