diff options
Diffstat (limited to 'actionpack')
-rw-r--r-- | actionpack/lib/action_dispatch/routing/mapper.rb | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/actionpack/lib/action_dispatch/routing/mapper.rb b/actionpack/lib/action_dispatch/routing/mapper.rb index 84a08770f5..68f9225a45 100644 --- a/actionpack/lib/action_dispatch/routing/mapper.rb +++ b/actionpack/lib/action_dispatch/routing/mapper.rb @@ -240,15 +240,18 @@ module ActionDispatch if to.respond_to?(:call) { } else - if to.is_a?(String) - controller, action = to.split('#') - elsif to.is_a?(Symbol) + controller = default_controller + action = default_action + + case to + when Symbol action = to.to_s + when /#/ + controller, action = to.split('#') + when String + controller = to end - controller ||= default_controller - action ||= default_action - if @scope[:module] && !controller.is_a?(Regexp) if controller =~ %r{\A/} controller = controller[1..-1] |