diff options
author | Rafael França <rafaelmfranca@gmail.com> | 2018-09-27 16:57:35 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-09-27 16:57:35 -0400 |
commit | 16e6d42b225bc4dbdb6d96338df5a60ca4ce3f4e (patch) | |
tree | 73e339c6e71c3e6399432179da25f490b882cbf3 /actionpack | |
parent | 8ad897fdedff6eb09daeb856786f3cc555b5c4e5 (diff) | |
parent | 7670d60977a7de3d11a8a9004b8a7a1c60383ee7 (diff) | |
download | rails-16e6d42b225bc4dbdb6d96338df5a60ca4ce3f4e.tar.gz rails-16e6d42b225bc4dbdb6d96338df5a60ca4ce3f4e.tar.bz2 rails-16e6d42b225bc4dbdb6d96338df5a60ca4ce3f4e.zip |
Merge pull request #34002 from gmcgibbon/fix_deeply_nested_scoped_root
Fix optionally scoped root route unscoped access
Diffstat (limited to 'actionpack')
-rw-r--r-- | actionpack/lib/action_dispatch/routing/mapper.rb | 2 | ||||
-rw-r--r-- | actionpack/test/dispatch/routing_test.rb | 16 |
2 files changed, 17 insertions, 1 deletions
diff --git a/actionpack/lib/action_dispatch/routing/mapper.rb b/actionpack/lib/action_dispatch/routing/mapper.rb index 8386cb9689..8b5a39dcaf 100644 --- a/actionpack/lib/action_dispatch/routing/mapper.rb +++ b/actionpack/lib/action_dispatch/routing/mapper.rb @@ -402,7 +402,7 @@ module ActionDispatch # for root cases, where the latter is the correct one. def self.normalize_path(path) path = Journey::Router::Utils.normalize_path(path) - path.gsub!(%r{/(\(+)/?}, '\1/') unless path =~ %r{^/\(+[^)]+\)$} + path.gsub!(%r{/(\(+)/?}, '\1/') unless path =~ %r{^/(\(+[^)]+\)){1,}$} path end diff --git a/actionpack/test/dispatch/routing_test.rb b/actionpack/test/dispatch/routing_test.rb index ee87791538..affc2d8497 100644 --- a/actionpack/test/dispatch/routing_test.rb +++ b/actionpack/test/dispatch/routing_test.rb @@ -1382,6 +1382,22 @@ class TestRoutingMapper < ActionDispatch::IntegrationTest assert_equal "projects#index", @response.body end + def test_optionally_scoped_root_unscoped_access + draw do + scope "(:locale)" do + scope "(:platform)" do + scope "(:browser)" do + root to: "projects#index" + end + end + end + end + + assert_equal "/", root_path + get "/" + assert_equal "projects#index", @response.body + end + def test_scope_with_format_option draw do get "direct/index", as: :no_format_direct, format: false |