module ActionDispatch::Http::Parameters
Public Class Methods
new(env)
click to toggle source
Calls superclass method
# File lib/action_dispatch/http/parameters.rb, line 7 def initialize(env) super @symbolized_path_params = nil end
Public Instance Methods
parameters()
click to toggle source
Returns both GET and POST parameters in a single hash.
# File lib/action_dispatch/http/parameters.rb, line 13 def parameters @env["action_dispatch.request.parameters"] ||= begin params = begin request_parameters.merge(query_parameters) rescue EOFError query_parameters.dup end params.merge!(path_parameters) params.with_indifferent_access end end
Also aliased as: params
path_parameters()
click to toggle source
Returns a hash with the parameters used to form the path of the request. Returned hash keys are strings:
{'action' => 'my_action', 'controller' => 'my_controller'}
See symbolized_path_parameters
for symbolized keys.
# File lib/action_dispatch/http/parameters.rb, line 43 def path_parameters @env["action_dispatch.request.path_parameters"] ||= {} end
symbolized_path_parameters()
click to toggle source
The same as path_parameters
with explicitly symbolized keys.
# File lib/action_dispatch/http/parameters.rb, line 33 def symbolized_path_parameters @symbolized_path_params ||= path_parameters.symbolize_keys end
Private Instance Methods
normalize_encode_params(params)
click to toggle source
Convert nested Hash to HashWithIndifferentAccess and UTF-8 encode both keys and values in nested Hash.
TODO: Validate that the characters are UTF-8. If they aren't, you'll get a weird error down the road, but our form handling should really prevent that from happening
# File lib/action_dispatch/http/parameters.rb, line 59 def normalize_encode_params(params) case params when String params.force_encoding(Encoding::UTF_8).encode! when Hash if params.has_key?(:tempfile) UploadedFile.new(params) else params.each_with_object({}) do |(key, val), new_hash| new_key = key.is_a?(String) ? key.dup.force_encoding(Encoding::UTF_8).encode! : key new_hash[new_key] = if val.is_a?(Array) val.map! { |el| normalize_encode_params(el) } else normalize_encode_params(val) end end.with_indifferent_access end else params end end