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