提交 adbae9aa 编写于 作者: G german 提交者: Santiago Pastorino

fixed bug with nested resources within shallow scope

[#6372 state:committed]
Signed-off-by: NSantiago Pastorino <santiago@wyeworks.com>
上级 94175c0e
...@@ -1199,7 +1199,7 @@ def namespace(path, options = {}) ...@@ -1199,7 +1199,7 @@ def namespace(path, options = {})
end end
def shallow def shallow
scope(:shallow => true) do scope(:shallow => true, :shallow_path => @scope[:path]) do
yield yield
end end
end end
......
...@@ -205,6 +205,14 @@ def self.call(params, request) ...@@ -205,6 +205,14 @@ def self.call(params, request)
end end
end end
scope '/hello' do
shallow do
resources :notes do
resources :trackbacks
end
end
end
resources :threads, :shallow => true do resources :threads, :shallow => true do
resource :owner resource :owner
resources :messages do resources :messages do
...@@ -1676,6 +1684,60 @@ def test_shallow_nested_resources ...@@ -1676,6 +1684,60 @@ def test_shallow_nested_resources
end end
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 def test_custom_resource_routes_are_scoped
with_test_routes do with_test_routes do
assert_equal '/customers/recent', recent_customers_path assert_equal '/customers/recent', recent_customers_path
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册