module Erratum::RescuableResource
Public Class Methods
included(base)
click to toggle source
# File lib/erratum/rescuable_resource.rb, line 7 def self.included(base) base.include ::AppleCore::ActionController::ResourceNaming base.rescue_from 'ActiveRecord::RecordInvalid', 'ActiveRecord::RecordNotSaved', 'ActiveRecord::RecordNotFound', 'ActiveRecord::RecordNotUnique', 'ActiveRecord::InvalidForeignKey', 'ActiveRecord::ValueTooLong', 'ActionController::ParameterMissing', 'ActionController::UnpermittedParameters' do |exception| erratum = Array( Erratum.build( exception, resource_name: self.class.singular_underscored_base_resource_name, resource_id: params[:id], action: action_name, ), ) render json: Hash['errors' => erratum.as_json], status: erratum.first.http_status end base.rescue_from 'Erratum::Error' do |exception| exception = Array(exception) render json: Hash['errors' => exception.as_json], status: exception.first.http_status end end