method
match
v3.0.0 -
Show latest stable
- Class:
ActionDispatch::Routing::Mapper::Resources
match(*args)public
No documentation available.
# File actionpack/lib/action_dispatch/routing/mapper.rb, line 681
def match(*args)
options = args.extract_options!.dup
options[:anchor] = true unless options.key?(:anchor)
if args.length > 1
args.each { |path| match(path, options.dup) }
return self
end
on = options.delete(:on)
if VALID_ON_OPTIONS.include?(on)
args.push(options)
return send(on){ match(*args) }
elsif on
raise ArgumentError, "Unknown scope #{on.inspect} given to :on"
end
if @scope[:scope_level] == :resources
args.push(options)
return nested { match(*args) }
elsif @scope[:scope_level] == :resource
args.push(options)
return member { match(*args) }
end
action = args.first
path = path_for_action(action, options.delete(:path))
if action.to_s =~ /^[\w\/]+$/
options[:action] ||= action unless action.to_s.include?("/")
options[:as] = name_for_action(action, options[:as])
else
options[:as] = name_for_action(options[:as])
end
super(path, options)
end