mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Fix namespaced redirects [#4389 state:resolved]
Signed-off-by: José Valim <jose.valim@gmail.com>
This commit is contained in:
parent
176c386409
commit
df15ba7ead
2 changed files with 15 additions and 1 deletions
|
@ -55,7 +55,7 @@ module ActionDispatch
|
||||||
path = args.first
|
path = args.first
|
||||||
end
|
end
|
||||||
|
|
||||||
if @scope[:module] && options[:to]
|
if @scope[:module] && options[:to] && !options[:to].is_a?(Proc)
|
||||||
if options[:to].to_s.include?("#")
|
if options[:to].to_s.include?("#")
|
||||||
options[:to] = "#{@scope[:module]}/#{options[:to]}"
|
options[:to] = "#{@scope[:module]}/#{options[:to]}"
|
||||||
elsif @scope[:controller].nil?
|
elsif @scope[:controller].nil?
|
||||||
|
|
|
@ -300,6 +300,11 @@ class TestRoutingMapper < ActionDispatch::IntegrationTest
|
||||||
match '/' => 'mes#index'
|
match '/' => 'mes#index'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
namespace :private do
|
||||||
|
root :to => redirect('/private/index')
|
||||||
|
match "index", :to => 'private#index'
|
||||||
|
end
|
||||||
|
|
||||||
match "whatever/:controller(/:action(/:id))"
|
match "whatever/:controller(/:action(/:id))"
|
||||||
|
|
||||||
resource :profile do
|
resource :profile do
|
||||||
|
@ -421,6 +426,15 @@ class TestRoutingMapper < ActionDispatch::IntegrationTest
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_namespace_redirect
|
||||||
|
with_test_routes do
|
||||||
|
get '/private'
|
||||||
|
assert_equal 301, @response.status
|
||||||
|
assert_equal 'http://www.example.com/private/index', @response.headers['Location']
|
||||||
|
assert_equal 'Moved Permanently', @response.body
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def test_session_singleton_resource
|
def test_session_singleton_resource
|
||||||
with_test_routes do
|
with_test_routes do
|
||||||
get '/session'
|
get '/session'
|
||||||
|
|
Loading…
Reference in a new issue