class PermittedParams
Public Class Methods
define(symbol, &block)
click to toggle source
# File lib/permitted_params.rb, line 24 def self.define(symbol, &block) define_method("#{symbol}_attributes") do attrs = Attributes.new(self) attrs.instance_eval(&block) attrs.attributes end end
setup(&block)
click to toggle source
# File lib/permitted_params.rb, line 32 def self.setup(&block) block.call(Configurator.new) end
Public Instance Methods
method_missing(method, *args, &block)
click to toggle source
Calls superclass method
# File lib/permitted_params.rb, line 2 def method_missing(method, *args, &block) if method.match /_attributes\z/ super else params_hash = args.length > 0 ? args[0] : params[method] permit(params_hash, method) end end
permit(params, as_type)
click to toggle source
# File lib/permitted_params.rb, line 11 def permit(params, as_type) attrs_method = "#{as_type}_attributes".to_sym permitted_params = send(attrs_method) begin params.try(:permit, *permitted_params) rescue => e Rails.logger.warn "Exception caught in PermittedParams" Rails.logger.warn "params: #{params.inspect}" Rails.logger.warn "permitted_params: #{permitted_params.inspect}" raise e end end