method
assign_parameters
v3.2.1 -
Show latest stable
- Class:
ActionController::TestRequest
assign_parameters(routes, controller_path, action, parameters = {})public
No documentation available.
# File actionpack/lib/action_controller/test_case.rb, line 145
def assign_parameters(routes, controller_path, action, parameters = {})
parameters = parameters.symbolize_keys.merge(:controller => controller_path, :action => action)
extra_keys = routes.extra_keys(parameters)
non_path_parameters = get? ? query_parameters : request_parameters
parameters.each do |key, value|
if value.is_a? Fixnum
value = value.to_s
elsif value.is_a? Array
value = Result.new(value.map { |v| v.is_a?(String) ? v.dup : v })
elsif value.is_a? String
value = value.dup
end
if extra_keys.include?(key.to_sym)
non_path_parameters[key] = value
else
path_parameters[key.to_s] = value
end
end
# Clear the combined params hash in case it was already referenced.
@env.delete("action_dispatch.request.parameters")
params = self.request_parameters.dup
%(controller action only_path).each do |k|
params.delete(k)
params.delete(k.to_sym)
end
data = params.to_query
@env['CONTENT_LENGTH'] = data.length.to_s
@env['rack.input'] = StringIO.new(data)
end