method
default_controller_and_action
rails latest stable - Class:
ActionDispatch::Routing::Mapper::Mapping
default_controller_and_action()private
No documentation available.
# File actionpack/lib/action_dispatch/routing/mapper.rb, line 208
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
if @scope[:module] && !controller.is_a?(Regexp)
if controller =~ %{\A/}
controller = controller[1..-1]
else
controller = [@scope[:module], controller].compact.join("/").presence
end
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)
message = "Missing :controller key on routes definition, please check your routes."
raise ArgumentError, message
end
if action.blank? && segment_keys.exclude?(:action)
message = "Missing :action key on routes definition, please check your routes."
raise ArgumentError, message
end
if controller.is_a?(String) && controller !~ /\A[a-z_0-9\/]*\z/
message = "'#{controller}' is not a supported controller name. This can lead to potential routing problems."
message << " See http://guides.rubyonrails.org/routing.html#specifying-a-controller-to-use"
raise ArgumentError, message
end
hash = {}
hash[:controller] = controller unless controller.blank?
hash[:action] = action unless action.blank?
hash
end
end