module PunditExtra::ResourceAutoload
Public Instance Methods
has_permitted_attributes?(resource, action)
click to toggle source
# File lib/pundit_extra/resource_autoload.rb, line 85 def has_permitted_attributes?(resource, action) return true if policy(resource).respond_to? "permitted_attributes_for_#{action}" return true if policy(resource).respond_to? :permitted_attributes false end
load_resource()
click to toggle source
# File lib/pundit_extra/resource_autoload.rb, line 28 def load_resource scope = resource_class action = params[:action] varname = resource_name if action == 'index' varname = controller_name resource = policy_scope resource_class elsif action == 'new' resource = scope.new elsif action == 'create' resource = scope.new resource.attributes = resource_attributes resource, action elsif params[:id] resource = scope.find params[:id] else resource = nil end instance_variable_set "@#{varname}", resource end
resource_attributes(resource, action)
click to toggle source
# File lib/pundit_extra/resource_autoload.rb, line 77 def resource_attributes(resource, action) if has_permitted_attributes? resource, action permitted_attributes(resource) else send "#{resource_name}_params" end end
resource_class()
click to toggle source
# File lib/pundit_extra/resource_autoload.rb, line 69 def resource_class resource_name.classify.constantize end
resource_instance()
click to toggle source
# File lib/pundit_extra/resource_autoload.rb, line 73 def resource_instance instance_variable_get "@#{resource_name}" end
resource_name()
click to toggle source
# File lib/pundit_extra/resource_autoload.rb, line 65 def resource_name controller_name.singularize end