Module: TwinTurbo::Controller

Defined in:
lib/twinturbo/controller.rb

Instance Method Summary collapse

Instance Method Details

#permitted_paramsObject

the following methods are from Adam Hawkins’s post: www.broadcastingadam.com/2012/07/parameter_authorization_in_rails_apis/ with modification to only try to call permitted params if is a permitter



9
10
11
12
# File 'lib/twinturbo/controller.rb', line 9

def permitted_params
  # if you send invalid content, it will return an HTTP 20x for a put and a 422 for a post, instead of a 500 for both.
  @permitted_params ||= safe_permitted_params
end

#permitterObject



14
15
16
17
18
# File 'lib/twinturbo/controller.rb', line 14

def permitter
  return unless permitter_class

  @permitter ||= permitter_class.new params, current_user, current_ability
end

#permitter_classObject



20
21
22
23
24
25
26
# File 'lib/twinturbo/controller.rb', line 20

def permitter_class
  begin
    "#{self.class.to_s.match(/(.*?::)?(?<controller_name>.+)Controller/)[:controller_name].singularize}Permitter".constantize
  rescue NameError
    nil
  end
end

#safe_permitted_paramsObject



28
29
30
31
32
33
# File 'lib/twinturbo/controller.rb', line 28

def safe_permitted_params
  begin
    permitter.send(:permitted_params)
  rescue
  end
end