module ActionDispatch::Http::Parameters
def encode_params(params)
you'll get a weird error down the road, but our form handling
TODO: Validate that the characters are UTF-8. If they aren't,
def encode_params(params) return params unless "ruby".encoding_aware? if params.is_a?(String) return params.force_encoding("UTF-8").encode! elsif !params.is_a?(Hash) return params end params.each do |k, v| case v when Hash encode_params(v) when Array v.map! {|el| encode_params(el) } else encode_params(v) end end end
def normalize_parameters(value)
def normalize_parameters(value) case value when Hash h = {} value.each { |k, v| h[k] = normalize_parameters(v) } h.with_indifferent_access when Array value.map { |e| normalize_parameters(e) } else value end end
def parameters
def parameters @env["action_dispatch.request.parameters"] ||= begin params = request_parameters.merge(query_parameters) params.merge!(path_parameters) encode_params(params).with_indifferent_access end end
def path_parameters
{'action' => 'my_action', 'controller' => 'my_controller'}
Returned hash keys are strings:
Returns a hash with the \parameters used to form the \path of the request.
def path_parameters @env["action_dispatch.request.path_parameters"] ||= {} end
def path_parameters=(parameters) #:nodoc:
def path_parameters=(parameters) #:nodoc: @symbolized_path_params = nil @env.delete("action_dispatch.request.parameters") @env["action_dispatch.request.path_parameters"] = parameters end
def symbolized_path_parameters
def symbolized_path_parameters @symbolized_path_params ||= path_parameters.symbolize_keys end