From e09e600a48e525553767da5a1ec2e756fe62aac4 Mon Sep 17 00:00:00 2001 From: Dylan Waits Date: Sat, 2 Apr 2016 18:38:22 -0700 Subject: Honor shallow: false on nested resources Previously there was no way to place a non-shallow resource inside a parent with `shallow: true` set. Now you can set `shallow: false` on a nested child resource to generate normal (non-shallow) routes for it. Fixes #23890. --- actionpack/test/dispatch/routing_test.rb | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'actionpack/test') diff --git a/actionpack/test/dispatch/routing_test.rb b/actionpack/test/dispatch/routing_test.rb index 09830c0c46..dc9943bb13 100644 --- a/actionpack/test/dispatch/routing_test.rb +++ b/actionpack/test/dispatch/routing_test.rb @@ -2128,6 +2128,37 @@ class TestRoutingMapper < ActionDispatch::IntegrationTest assert_equal 'cards#destroy', @response.body end + def test_shallow_false_inside_nested_shallow_resource + draw do + resources :blogs, shallow: true do + resources :posts do + resources :comments, shallow: false + resources :tags + end + end + end + + get '/posts/1/comments' + assert_equal 'comments#index', @response.body + assert_equal '/posts/1/comments', post_comments_path('1') + + get '/posts/1/comments/new' + assert_equal 'comments#new', @response.body + assert_equal '/posts/1/comments/new', new_post_comment_path('1') + + get '/posts/1/comments/2' + assert_equal 'comments#show', @response.body + assert_equal '/posts/1/comments/2', post_comment_path('1', '2') + + get '/posts/1/comments/2/edit' + assert_equal 'comments#edit', @response.body + assert_equal '/posts/1/comments/2/edit', edit_post_comment_path('1', '2') + + get '/tags/3' + assert_equal 'tags#show', @response.body + assert_equal '/tags/3', tag_path('3') + end + def test_shallow_deeply_nested_resources draw do resources :blogs do -- cgit v1.2.3