method
handle_list
rails latest stable - Class:
ActionDispatch::Routing::PolymorphicRoutes::HelperMethodBuilder
handle_list(list)public
No documentation available.
# File actionpack/lib/action_dispatch/routing/polymorphic_routes.rb, line 286
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