method
polymorphic_method
v7.0.0 -
Show latest stable
- Class:
ActionDispatch::Routing::PolymorphicRoutes::HelperMethodBuilder
polymorphic_method(recipient, record_or_hash_or_array, action, type, options)public
No documentation available.
# File actionpack/lib/action_dispatch/routing/polymorphic_routes.rb, line 205
def self.polymorphic_method(recipient, record_or_hash_or_array, action, type, options)
builder = get action, type
case record_or_hash_or_array
when Array
record_or_hash_or_array = record_or_hash_or_array.compact
if record_or_hash_or_array.empty?
raise ArgumentError, "Nil location provided. Can't build URI."
end
if record_or_hash_or_array.first.is_a?(ActionDispatch::Routing::RoutesProxy)
recipient = record_or_hash_or_array.shift
end
method, args = builder.handle_list record_or_hash_or_array
when String, Symbol
method, args = builder.handle_string record_or_hash_or_array
when Class
method, args = builder.handle_class record_or_hash_or_array
when nil
raise ArgumentError, "Nil location provided. Can't build URI."
else
method, args = builder.handle_model record_or_hash_or_array
end
if options.empty?
recipient.public_send(method, *args)
else
recipient.public_send(method, *args, options)
end
end