Как добавить пользовательские классы обработчиков исключений в приложение rails и глобально спасать исключения во всех процессах (например, контроллеры, задания, службы)? - PullRequest
0 голосов
/ 22 января 2020

Я хотел бы добавить этот пользовательский класс ошибок:

module Exceptions
  class ConnectionReset < ActiveRecord::RecordNotFound
    def initialize(msg='')
      some_logger
      super(msg)
    end

    def some_logger
      puts "#{msg.inspect} this problem"
    end
  end
end

Я добавил этот бит в application.rb

config.exceptions_app= lambda { ::Exceptions::ConnectionReset.new }
config.action_dispatch.rescue_responses['ActiveRecord::RecordNotFound'] = lambda { ::Exceptions::ConnectionReset.new }

Теперь у меня нет ошибки конфигурации, но я не могу rescue это exception с моим custom exception class.

Мне нужно иметь возможность использовать этот обработчик не только в контроллере, но и в фоновых рабочих и службах, поэтому я не могу использовать привилегию rescue_from в моем ApplicationController.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...