Module: BetterStrongParams::ClassMethods

Defined in:
lib/better_strong_params.rb

Instance Method Summary collapse

Instance Method Details

#filter_parameters(options = {}) ⇒ Object



17
18
19
# File 'lib/better_strong_params.rb', line 17

def filter_parameters(options = {})
  raise(BetterStrongParams::Exceptions::Deprecated, "filter_parameters was deprecated in version 0.0.3, please refer to https://github.com/ShinobiDevs/better_strong_params for more information on the new DSL.")
end

#whitelist_parameters(options = {}) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/better_strong_params.rb', line 21

def whitelist_parameters(options = {})

  alias_method :_params, :params

  define_method("params") do
    filtered = {}
    top_level_params = options.keys
    top_level_params.each do |top_level_param|
      filtered[top_level_param] = _params.require(top_level_param).permit(*options[top_level_param])
    end

    (_params.keys.map(&:to_s) - options.keys.map(&:to_s)).each do |root_level_param|
      filtered[root_level_param] = _params[root_level_param]
    end
    ActionController::Parameters.new(filtered).permit!
  end
end