2015-02-20 5 views
1

Стек: Ruby 2.2, Rails 4.2 и Honeybadger.Обработка ошибок в Rails

Я работаю над кодом обработки ошибок для своего сайта. Я заметил, что обработка ошибок стала настоящим беспорядком на сайте, и я искал способ стандартизации обработки ошибок.

Следующие "общих" типов ошибок было найдено:

  • Запись/ресурс не найден
  • Неспособность сохранить запись
  • Validation вопросы
  • права/Permissions ошибки
  • Другое (Обычно зондирующие боты, двойной клик или WTF?)

Со следующими результирующими действиями.

  • Уведомить об упорядочении Ошибка ресурса (возможно)
  • Сохранить данные; если особо длинная форма ввода
  • Ответ: перенаправление на страницу ошибки (вспышки [: ошибки] '?' =)
  • Ответ: Возвращает JSON строку (AJAX запросов)
  • Response: Различные коды состояния HTTP 3xx , 4xx, 5xx
  • Индивидуальное сообщение для разработчика (возможно); довольно длительные в некоторых случаях
  • настроенного сообщения пользователя
  • Молча не делать ничего

И тогда процесс выдает

  • ВСПЯТЬ
  • возвращения (выходящее из действия, а не позволяя дальнейшие действия)

Кто-нибудь знает о самоцвете/модуле/учебном пособии который обрабатывает эти коллективные проблемы целостно?

Заранее благодарю вас!

-daniel

+0

что-то вроде http://www.rubytutorial.io/rails-rescue_from/ или более конкретно? – scones

+0

@scones rescue_from обрабатывает определенную проблему, вызывая исключение.У меня было хотя бы исключение, но матрица (Why * Action) означала бы принятие большого количества исключений. – Daniel

ответ

0

Я думаю, что лучший ответ, чтобы бросить исключение

код Контроллер отвечает за получение параметров, дезинфицировать их, проверяет роль/безопасности, что делает звонки для получения данных (это должно быть бизнес-логикой) и подготовка данных для экспорта обратно в браузер.

Я добавлю к этим исключениям обработки из кода.

Тогда бизнес-логика должна вызвать ошибку, если произойдет что-то фаталистическое.

+0

Получив данные, я имею в виду MyBusinessLogic.call() https://github.com/collectiveidea/interactor – Daniel

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