mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Fixes namespaced routes [#3673 status:resolved]
Signed-off-by: José Valim <jose.valim@gmail.com>
This commit is contained in:
parent
d2c4a93c69
commit
36969c6ecd
2 changed files with 13 additions and 5 deletions
|
@ -258,10 +258,17 @@ module ActionDispatch
|
||||||
else
|
else
|
||||||
name_prefix_set = false
|
name_prefix_set = false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if namespace = options.delete(:namespace)
|
||||||
|
namespace_set = true
|
||||||
|
namespace, @scope[:namespace] = @scope[:namespace], namespace
|
||||||
|
else
|
||||||
|
namespace_set = false
|
||||||
|
end
|
||||||
|
|
||||||
if controller = options.delete(:controller)
|
if controller = options.delete(:controller)
|
||||||
controller_set = true
|
controller_set = true
|
||||||
controller, @scope[:controller] = @scope[:controller], controller
|
controller, @scope[:controller] = @scope[:controller], @scope[:namespace] ? "#{@scope[:namespace]}/#{controller}" : controller
|
||||||
else
|
else
|
||||||
controller_set = false
|
controller_set = false
|
||||||
end
|
end
|
||||||
|
@ -281,6 +288,7 @@ module ActionDispatch
|
||||||
ensure
|
ensure
|
||||||
@scope[:path] = path if path_set
|
@scope[:path] = path if path_set
|
||||||
@scope[:name_prefix] = name_prefix if name_prefix_set
|
@scope[:name_prefix] = name_prefix if name_prefix_set
|
||||||
|
@scope[:namespace] = namespace if namespace_set
|
||||||
@scope[:controller] = controller if controller_set
|
@scope[:controller] = controller if controller_set
|
||||||
@scope[:options] = options
|
@scope[:options] = options
|
||||||
@scope[:blocks] = blocks
|
@scope[:blocks] = blocks
|
||||||
|
@ -292,7 +300,7 @@ module ActionDispatch
|
||||||
end
|
end
|
||||||
|
|
||||||
def namespace(path)
|
def namespace(path)
|
||||||
scope("/#{path}", :name_prefix => path.to_s) { yield }
|
scope("/#{path}", :name_prefix => path.to_s, :namespace => path.to_s) { yield }
|
||||||
end
|
end
|
||||||
|
|
||||||
def constraints(constraints = {})
|
def constraints(constraints = {})
|
||||||
|
|
|
@ -432,15 +432,15 @@ class TestRoutingMapper < ActionDispatch::IntegrationTest
|
||||||
def test_account_namespace
|
def test_account_namespace
|
||||||
with_test_routes do
|
with_test_routes do
|
||||||
get '/account/subscription'
|
get '/account/subscription'
|
||||||
assert_equal 'subscriptions#show', @response.body
|
assert_equal 'account/subscriptions#show', @response.body
|
||||||
assert_equal '/account/subscription', account_subscription_path
|
assert_equal '/account/subscription', account_subscription_path
|
||||||
|
|
||||||
get '/account/credit'
|
get '/account/credit'
|
||||||
assert_equal 'credits#show', @response.body
|
assert_equal 'account/credits#show', @response.body
|
||||||
assert_equal '/account/credit', account_credit_path
|
assert_equal '/account/credit', account_credit_path
|
||||||
|
|
||||||
get '/account/credit_card'
|
get '/account/credit_card'
|
||||||
assert_equal 'credit_cards#show', @response.body
|
assert_equal 'account/credit_cards#show', @response.body
|
||||||
assert_equal '/account/credit_card', account_credit_card_path
|
assert_equal '/account/credit_card', account_credit_card_path
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue