Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix 'permit' params to allow multiple form inputs for a single scope #115

Merged
merged 7 commits into from Mar 8, 2017
12 changes: 11 additions & 1 deletion lib/filterrific/param_set.rb
Expand Up @@ -29,7 +29,17 @@ def initialize(a_model_class, filterrific_params = {})
# will be already initialized with the defaults.
filterrific_params = model_class.filterrific_default_filter_params if filterrific_params.blank?
if defined?(ActionController::Parameters) && filterrific_params.is_a?(ActionController::Parameters)
filterrific_params = filterrific_params.permit(model_class.filterrific_available_filters).to_h.stringify_keys
permissible_filter_params = []
model_class.filterrific_available_filters.each do |p|
if filterrific_params[p].is_a?(ActionController::Parameters)
permissible_filter_params << { p => filterrific_params[p].keys }
elsif filterrific_params[p].is_a?(Array)
permissible_filter_params << { p => [] }
else
permissible_filter_params << p
end
end
filterrific_params = filterrific_params.permit(permissible_filter_params).to_h.stringify_keys
else
filterrific_params.stringify_keys!
end
Expand Down