Flowdock
method

generate

Importance_0
Ruby on Rails latest stable (v6.1.7.7) - 0 notes - Class: Formatter

Method deprecated or moved

This method is deprecated or moved on the latest stable version. The last existing version (v5.0.0.1) is shown here.

These similar methods exist in v6.1.7.7:

generate(name, options, path_parameters, parameterize = nil) 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/journey/formatter.rb, line 15
      def generate(name, options, path_parameters, parameterize = nil)
        constraints = path_parameters.merge(options)
        missing_keys = nil # need for variable scope

        match_route(name, constraints) do |route|
          parameterized_parts = extract_parameterized_parts(route, options, path_parameters, parameterize)

          # Skip this route unless a name has been provided or it is a
          # standard Rails route since we can't determine whether an options
          # hash passed to url_for matches a Rack application or a redirect.
          next unless name || route.dispatcher?

          missing_keys = missing_keys(route, parameterized_parts)
          next if missing_keys && !missing_keys.empty?
          params = options.dup.delete_if do |key, _|
            parameterized_parts.key?(key) || route.defaults.key?(key)
          end

          defaults       = route.defaults
          required_parts = route.required_parts

          route.parts.reverse_each do |key|
            break if defaults[key].nil? && parameterized_parts[key].present?
            break if parameterized_parts[key].to_s != defaults[key].to_s
            break if required_parts.include?(key)

            parameterized_parts.delete(key)
          end

          return [route.format(parameterized_parts), params]
        end

        message = "No route matches #{Hash[constraints.sort_by{|k,v| k.to_s}].inspect}"
        message << " missing required keys: #{missing_keys.sort.inspect}" if missing_keys && !missing_keys.empty?

        raise ActionController::UrlGenerationError, message
      end
Register or log in to add new notes.