class ActionDispatch::Routing::PolymorphicRoutes::HelperMethodBuilder

def handle_list(list)

def handle_list(list)
  record_list = list.dup
  record      = record_list.pop
  args = []
  route = record_list.map do |parent|
    case parent
    when Symbol
      parent.to_s
    when String
      raise(ArgumentError, "Please use symbols for polymorphic route arguments.")
    when Class
      args << parent
      parent.model_name.singular_route_key
    else
      args << parent.to_model
      parent.to_model.model_name.singular_route_key
    end
  end
  route <<
  case record
  when Symbol
    record.to_s
  when String
    raise(ArgumentError, "Please use symbols for polymorphic route arguments.")
  when Class
    @key_strategy.call record.model_name
  else
    model = record.to_model
    if model.persisted?
      args << model
      model.model_name.singular_route_key
    else
      @key_strategy.call model.model_name
    end
  end
  route << suffix
  named_route = prefix + route.join("_")
  [named_route, args]
end