Class: AbstractController::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/action_args/abstract_controller.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.permits(*attributes) ⇒ Object

You can configure StrongParameters' permit attributes using this DSL method. The permit call will be invoked only against parameters having the resource model name inferred from the controller class name.

class UsersController < ApplicationController
permits :name, :age

def create(user)
  @user = User.new(user)
end
end


26
27
28
29
30
31
32
# File 'lib/action_args/abstract_controller.rb', line 26

def self.permits(*attributes)
  if attributes.last.is_a?(Hash) && attributes.last.extractable_options? && attributes.last.has_key?(:model_name)
    options = attributes.pop
    @permitting_model_name = options[:model_name]
  end
  @permitted_attributes = attributes
end

Instance Method Details

#send_action(method_name, *args) ⇒ Object

no StrongParameters



35
36
37
38
39
40
41
42
43
# File 'lib/action_args/abstract_controller.rb', line 35

def send_action(method_name, *args)
  return send method_name, *args unless args.empty?
  return send method_name, *args unless defined?(params)

  method_parameters = method(method_name).parameters
  ActionArgs::ParamsHandler.strengthen_params!(self.class, method_parameters, params)
  values = ActionArgs::ParamsHandler.extract_method_arguments_from_params method_parameters, params
  send method_name, *values
end