module ActionDispatch::Routing::Mapper::Resources
def name_for_action(as, action) #:nodoc:
def name_for_action(as, action) #:nodoc: prefix = prefix_name_for_action(as, action) prefix = Mapper.normalize_name(prefix) if prefix name_prefix = @scope[:as] if parent_resource return nil unless as || action collection_name = parent_resource.collection_name member_name = parent_resource.member_name end name = case @scope[:scope_level] when :nested [name_prefix, prefix] when :collection [prefix, name_prefix, collection_name] when :new [prefix, :new, name_prefix, member_name] when :member [prefix, shallow_scoping? ? @scope[:shallow_prefix] : name_prefix, member_name] when :root [name_prefix, collection_name, prefix] else [name_prefix, member_name, prefix] end if candidate = name.select(&:present?).join("_").presence # If a name was not explicitly given, we check if it is valid # and return nil in case it isn't. Otherwise, we pass the invalid name # forward so the underlying router engine treats it and raises an exception. if as.nil? candidate unless @set.routes.find { |r| r.name == candidate } || candidate !~ /\A[_a-z]/i else candidate end end end