method

handle_list

Importance_0
v7.0.0 - Show latest stable - 0 notes - Class: HelperMethodBuilder
handle_list(list) 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 284
          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
Register or log in to add new notes.