module StrongerParameters::ControllerSupport::PermittedParameters::ClassMethods
Public Class Methods
extended(base)
click to toggle source
# File lib/stronger_parameters/controller_support/permitted_parameters.rb, line 38 def self.extended(base) base.send :class_attribute, :log_unpermitted_parameters, instance_accessor: false end
Public Instance Methods
log_invalid_parameters!()
click to toggle source
# File lib/stronger_parameters/controller_support/permitted_parameters.rb, line 42 def log_invalid_parameters! self.log_unpermitted_parameters = true end
permitted_parameters(action, permitted)
click to toggle source
# File lib/stronger_parameters/controller_support/permitted_parameters.rb, line 46 def permitted_parameters(action, permitted) if permit_parameters[action] == :skip || permitted == :skip permit_parameters[action] = permitted else action_permitted = (permit_parameters[action] ||= {}) action_permitted.deep_merge!(permitted) end end
permitted_parameters_for(action)
click to toggle source
# File lib/stronger_parameters/controller_support/permitted_parameters.rb, line 55 def permitted_parameters_for(action) unless for_action = permit_parameters[action] # NOTE: there is no easy way to test this, so make sure to test with # a real rails controller if you make changes. message = "Action #{action} for #{self} does not have any permitted parameters" message += " (#{instance_method(action).source_location.join(":")})" if method_defined?(action) raise(KeyError, message) end return :skip if for_action == :skip # FYI: we should be able to call sugar on the result of deep_merge, but it breaks tests permit_parameters[:all].deep_merge(for_action). each_with_object({}) { |(k, v), a| a[k] = PermittedParameters.sugar(v) } end
Private Instance Methods
permit_parameters()
click to toggle source
# File lib/stronger_parameters/controller_support/permitted_parameters.rb, line 72 def permit_parameters @permit_parameters ||= if superclass.respond_to?(:permit_parameters, true) superclass.send(:permit_parameters).deep_dup else {all: DEFAULT_PERMITTED.deep_dup} end end