method
hash_filter
v7.0.0 -
Show latest stable
- Class:
ActionController::Parameters
hash_filter(params, filter)private
No documentation available.
# File actionpack/lib/action_controller/metal/strong_parameters.rb, line 1079
def hash_filter(params, filter)
filter = filter.with_indifferent_access
# Slicing filters out non-declared keys.
slice(*filter.keys).each do |key, value|
next unless value
next unless has_key? key
if filter[key] == EMPTY_ARRAY
# Declaration { comment_ids: [] }.
array_of_permitted_scalars?(self[key]) do |val|
params[key] = val
end
elsif filter[key] == EMPTY_HASH
# Declaration { preferences: {} }.
if value.is_a?(Parameters)
params[key] = permit_any_in_parameters(value)
end
elsif non_scalar?(value)
# Declaration { user: :name } or { user: [:name, :age, { address: ... }] }.
params[key] = each_element(value, filter[key]) do |element|
element.permit(*Array.wrap(filter[key]))
end
end
end
end