提交 8974dac9 编写于 作者: J José Valim

Ensure root routes inside optional scopes works as expected.

上级 5d078692
......@@ -157,10 +157,11 @@ def default_controller
end
# Invokes Rack::Mount::Utils.normalize path and ensure that
# (:locale) becomes (/:locale) instead of /(:locale).
# (:locale) becomes (/:locale) instead of /(:locale). Except
# for root cases, where the latter is the correct one.
def self.normalize_path(path)
path = Rack::Mount::Utils.normalize_path(path)
path.sub!(%r{/\(+/?:}, '(/:')
path.sub!(%r{/(\(+)/?:}, '\1/:') unless path =~ %r{^/\(+:.*\)$}
path
end
......
......@@ -141,19 +141,18 @@ def self.matches?(request)
resources :rooms
end
scope '(:locale)', :locale => /en|pl/ do
resources :descriptions
end
match '/info' => 'projects#info', :as => 'info'
namespace :admin do
scope '(/:locale)', :locale => /en|pl/ do
scope '(:locale)', :locale => /en|pl/ do
resources :descriptions
end
end
match '/info' => 'projects#info', :as => 'info'
root :to => 'projects#index'
scope '(:locale)', :locale => /en|pl/ do
resources :descriptions
root :to => 'projects#index'
end
end
end
......@@ -660,6 +659,14 @@ def test_normalize_namespaced_matches
end
end
def test_optional_scoped_root
with_test_routes do
assert_equal '/en', root_path("en")
get '/en'
assert_equal 'projects#index', @response.body
end
end
def test_optional_scoped_path
with_test_routes do
assert_equal '/en/descriptions', descriptions_path("en")
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册