method
default_controller_and_action
v3.2.13 -
Show latest stable
- Class:
ActionDispatch::Routing::Mapper::Mapping
default_controller_and_action()private
No documentation available.
# File actionpack/lib/action_dispatch/routing/mapper.rb, line 150
def default_controller_and_action
if to.respond_to?(:call)
{ }
else
if to.is_a?(String)
controller, action = to.split('#')
elsif to.is_a?(Symbol)
action = to.to_s
end
controller ||= default_controller
action ||= default_action
unless controller.is_a?(Regexp)
controller = [@scope[:module], controller].compact.join("/").presence
end
if controller.is_a?(String) && controller =~ %{\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)
if controller.blank? && segment_keys.exclude?("controller")
raise ArgumentError, "missing :controller"
end
if action.blank? && segment_keys.exclude?("action")
raise ArgumentError, "missing :action"
end
hash = {}
hash[:controller] = controller unless controller.blank?
hash[:action] = action unless action.blank?
hash
end
end