lib/cancan/controller_resource_sanitizer.rb
# frozen_string_literal: true
module CanCan
module ControllerResourceSanitizer
protected
def sanitize_parameters
case params_method
when Symbol
@controller.send(params_method)
when String
@controller.instance_eval(params_method)
when Proc
params_method.call(@controller)
end
end
def params_methods
methods = ["#{@params[:action]}_params".to_sym, "#{name}_params".to_sym, :resource_params]
methods.unshift(@options[:param_method]) if @options[:param_method].present?
methods
end
def params_method
params_methods.each do |method|
return method if (method.is_a?(Symbol) && @controller.respond_to?(method, true)) ||
method.is_a?(String) || method.is_a?(Proc)
end
nil
end
end
end