未验证 提交 798f175c 编写于 作者: R Rafael França 提交者: GitHub

Merge pull request #24405 from waits/shallow-false

Honor shallow: false on nested resources
......@@ -1402,6 +1402,8 @@ def resource(*resources, &block)
# as a comment on a blog post like <tt>/posts/a-long-permalink/comments/1234</tt>
# to be shortened to just <tt>/comments/1234</tt>.
#
# Set shallow: false on a child resource to ignore a parent's shallow parameter.
#
# [:shallow_path]
# Prefixes nested shallow routes with the specified path.
#
......@@ -1672,7 +1674,8 @@ def apply_common_behavior_for(method, resources, options, &block)
return true
end
if options.delete(:shallow)
if options[:shallow]
options.delete(:shallow)
shallow do
send(method, resources.pop, options, &block)
end
......
......@@ -2200,6 +2200,37 @@ def test_shallow_nested_resources_inside_resource
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
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册