method

polymorphic_method

Importance_0
v4.2.1 - Show latest stable - 0 notes - Class: HelperMethodBuilder
polymorphic_method(recipient, record_or_hash_or_array, action, type, options) public

No documentation

This method has no description. You can help the Ruby on Rails community by adding new notes.

Hide source
# File actionpack/lib/action_dispatch/routing/polymorphic_routes.rb, line 193
        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.send(method, *args)
          else
            recipient.send(method, *args, options)
          end
        end
Register or log in to add new notes.