123456789_123456789_123456789_123456789_123456789_

Class: ActionDispatch::Http::Utils::CustomParamEncoder

Do not use. This class is for internal use only.
Relationships & Source Files
Inherits: Object
Defined in: actionpack/lib/action_dispatch/http/utils.rb

Class Method Summary

Class Method Details

.action_encoding_template(controller_class, action)

[ GitHub ]

  
# File 'actionpack/lib/action_dispatch/http/utils.rb', line 107

def self.action_encoding_template(controller_class, action) # :nodoc:
  controller_class&.action_encoding_template(action)
end

.encode(params, controller_class, action)

[ GitHub ]

  
# File 'actionpack/lib/action_dispatch/http/utils.rb', line 102

def self.encode(params, controller_class, action)
  encoding_template = action_encoding_template(controller_class, action)
  encode_for_template(params, encoding_template)
end

.encode_for_template(params, encoding_template)

[ GitHub ]

  
# File 'actionpack/lib/action_dispatch/http/utils.rb', line 87

def self.encode_for_template(params, encoding_template)
  return params unless encoding_template
  params.except(:controller, :action).each do |key, value|
    Utils.each_param_value(value) do |param|
      # If `param` is frozen, it comes from the router defaults
      next if param.frozen?

      if encoding_template[key.to_s]
        param.force_encoding(encoding_template[key.to_s])
      end
    end
  end
  params
end