From 0bffd7d933a46df958c3e6bae1d9871aca515a12 Mon Sep 17 00:00:00 2001 From: Andrew White Date: Sat, 18 Sep 2010 17:49:46 +0100 Subject: Raise ArgumentError instead of normalizing controller name when there is a leading slash [#5651 state:resolved] --- actionpack/lib/action_dispatch/routing/mapper.rb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'actionpack/lib/action_dispatch/routing/mapper.rb') diff --git a/actionpack/lib/action_dispatch/routing/mapper.rb b/actionpack/lib/action_dispatch/routing/mapper.rb index 42ca351cfa..fe85acb94e 100644 --- a/actionpack/lib/action_dispatch/routing/mapper.rb +++ b/actionpack/lib/action_dispatch/routing/mapper.rb @@ -137,7 +137,7 @@ module ActionDispatch { } else if to.is_a?(String) - controller, action = to.sub(%r{\A/}, '').split('#') + controller, action = to.split('#') elsif to.is_a?(Symbol) action = to.to_s end @@ -149,6 +149,10 @@ module ActionDispatch controller = [@scope[:module], controller].compact.join("/").presence end + if controller.is_a?(String) && controller =~ %r{\A/} + raise ArgumentError, "controller name should not start with a slash" + end + controller = controller.to_s unless controller.is_a?(Regexp) action = action.to_s unless action.is_a?(Regexp) -- cgit v1.2.3