1

Я пытаюсь использовать exception_notification в первый раз. Я смотрел Railscast и следил за указаниями автора в http://smartinez87.github.io/exception_notification/. Кажется, что все отлично работает с некоторыми исключениями, но не с другими.Exception_Notification не знает об исключениях RecordNotFound

Я проверил и получил notificatios ошибок по электронной почте от моего Dev среды с ошибками, такими как "An ActionView::Template::Error occurred in static_pages#home:». Но, есть некоторые исключения, такие как RoutingException и RecordNotFound, которые не по ExceptionNotification поймает, и я не знаю, почему, как У меня нет какой-либо стратегии rescue_from любого вида в моем приложении__процессера.

Я использую рельсы 3.2.12 и проверял массив стека промежуточного слоя, и я вижу, что ExceptionNotification является только последним, и кажется, что какой-то исключения не идут по стопке, поэтому уведомление об исключении не знает о них.

S o, вопрос: что я делаю неправильно? в чем разница между ActionController::RoutingError или ActiveRecord::RecordNotFound, которые не улавливаются ExceptionNotification и ActionView::Template::Error, который улавливается, и вызывает уведомление об исключении для отправки уведомлений по электронной почте на мой почтовый ящик.

Заранее спасибо

ответ

7

Этих типов исключений игнорируются как часть конфигурации по умолчанию этого драгоценного камня. Смотрите линию 25 здесь: https://github.com/smartinez87/exception_notification/blob/master/lib/exception_notifier.rb который в настоящее время гласит:

@@ignored_exceptions = %w{ActiveRecord::RecordNotFound AbstractController::ActionNotFound ActionController::RoutingError ActionController::UnknownFormat} 

Вы можете переопределить это поведение в файле среды (т.е. development.rb, и т.д.).

Пример уведомления о ВСЕХ ошибок:

config.middleware.use ExceptionNotifier, 
    ignore_exceptions: [] 

Пример для добавления RuntimeError по умолчанию список игнорирования:

config.middleware.use ExceptionNotifier, 
    ignore_exceptions: ExceptionNotifier.default_ignore_exceptions + [RuntimeError] 
+0

Вы правы! Большое спасибо! Я, должно быть, более внимательно прочитал раздел об игнорируемых исключениях, поскольку он уже говорит о: ignore_exceptions, что по умолчанию:% w {ActiveRecord :: RecordNotFound AbstractController :: ActionNotFound ActionController :: RoutingError} :(Я должен вам пару сортов пива , – Juanra

Смежные вопросы