fixed bug with nested resources within shallow scope

[#6372 state:committed]

Signed-off-by: Santiago Pastorino <santiago@wyeworks.com>
This commit is contained in:
german 2011-02-04 11:51:34 -05:00 committed by Santiago Pastorino
parent 94175c0e39
commit adbae9aab8
2 changed files with 63 additions and 1 deletions

@ -1199,7 +1199,7 @@ def namespace(path, options = {})
end
def shallow
scope(:shallow => true) do
scope(:shallow => true, :shallow_path => @scope[:path]) do
yield
end
end

@ -205,6 +205,14 @@ def self.call(params, request)
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 @@ def test_shallow_nested_resources
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