mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
fixed bug with nested resources within shallow scope
[#6372 state:committed] Signed-off-by: Santiago Pastorino <santiago@wyeworks.com>
This commit is contained in:
parent
94175c0e39
commit
adbae9aab8
2 changed files with 63 additions and 1 deletions
|
@ -1199,7 +1199,7 @@ module ActionDispatch
|
|||
end
|
||||
|
||||
def shallow
|
||||
scope(:shallow => true) do
|
||||
scope(:shallow => true, :shallow_path => @scope[:path]) do
|
||||
yield
|
||||
end
|
||||
end
|
||||
|
|
|
@ -205,6 +205,14 @@ class TestRoutingMapper < ActionDispatch::IntegrationTest
|
|||
end
|
||||
end
|
||||
|
||||
scope '/hello' do
|
||||
shallow do
|
||||
resources :notes do
|
||||
resources :trackbacks
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
resources :threads, :shallow => true do
|
||||
resource :owner
|
||||
resources :messages do
|
||||
|
@ -1676,6 +1684,60 @@ class TestRoutingMapper < ActionDispatch::IntegrationTest
|
|||
end
|
||||
end
|
||||
|
||||
def test_shallow_nested_resources_within_scope
|
||||
with_test_routes do
|
||||
|
||||
get '/hello/notes/1/trackbacks'
|
||||
assert_equal 'trackbacks#index', @response.body
|
||||
assert_equal '/hello/notes/1/trackbacks', note_trackbacks_path(:note_id => 1)
|
||||
|
||||
get '/hello/notes/1/edit'
|
||||
assert_equal 'notes#edit', @response.body
|
||||
assert_equal '/hello/notes/1/edit', edit_note_path(:id => '1')
|
||||
|
||||
get '/hello/notes/1/trackbacks/new'
|
||||
assert_equal 'trackbacks#new', @response.body
|
||||
assert_equal '/hello/notes/1/trackbacks/new', new_note_trackback_path(:note_id => 1)
|
||||
|
||||
get '/hello/trackbacks/1'
|
||||
assert_equal 'trackbacks#show', @response.body
|
||||
assert_equal '/hello/trackbacks/1', trackback_path(:id => '1')
|
||||
|
||||
get '/hello/trackbacks/1/edit'
|
||||
assert_equal 'trackbacks#edit', @response.body
|
||||
assert_equal '/hello/trackbacks/1/edit', edit_trackback_path(:id => '1')
|
||||
|
||||
put '/hello/trackbacks/1'
|
||||
assert_equal 'trackbacks#update', @response.body
|
||||
|
||||
post '/hello/notes/1/trackbacks'
|
||||
assert_equal 'trackbacks#create', @response.body
|
||||
|
||||
delete '/hello/trackbacks/1'
|
||||
assert_equal 'trackbacks#destroy', @response.body
|
||||
|
||||
get '/hello/notes'
|
||||
assert_equal 'notes#index', @response.body
|
||||
|
||||
post '/hello/notes'
|
||||
assert_equal 'notes#create', @response.body
|
||||
|
||||
get '/hello/notes/new'
|
||||
assert_equal 'notes#new', @response.body
|
||||
assert_equal '/hello/notes/new', new_note_path
|
||||
|
||||
get '/hello/notes/1'
|
||||
assert_equal 'notes#show', @response.body
|
||||
assert_equal '/hello/notes/1', note_path(:id => 1)
|
||||
|
||||
put '/hello/notes/1'
|
||||
assert_equal 'notes#update', @response.body
|
||||
|
||||
delete '/hello/notes/1'
|
||||
assert_equal 'notes#destroy', @response.body
|
||||
end
|
||||
end
|
||||
|
||||
def test_custom_resource_routes_are_scoped
|
||||
with_test_routes do
|
||||
assert_equal '/customers/recent', recent_customers_path
|
||||
|
|
Loading…
Reference in a new issue