2009-06-04 2 views
1

У меня есть куча XHR-действий в контроллере, которые возвращают HTML-код для вставки на страницу. Если ответ является ошибкой, то он выводит выходной файл в специальную ошибку div. Пока ничего особо интересного.Action-specific обработчик исключений HTML в Rails

Однако этот общий процесс не работает для обработки исключений Rails. Если я возбужу исключение в своих действиях XHR, я получаю общий обработчик ошибок 500 в моем div div, который выглядит немного ужасающим. Хотя я могу уловить все возможные исключения в своем действии и сделать более подходящую ошибку, я теряю стандартное ведение журнала и уведомление, которое отстой.

Итак, единственное решение, о котором я могу думать, - это указать другой фрагмент HTML-обработчика 500 для использования для этих конкретных действий, но я не нахожу многого. У кого-нибудь есть идеи?

ответ

2

Вы должны быть в состоянии проверить код состояния 500 в своем обработчике javascript и отобразить общее сообщение типа «Проблема сервера». Если бы случаи, когда более конкретное сообщение об ошибке было бы полезно для конечного пользователя в рабочей среде, вам придется поймать эти исключения с помощью предложения rescue_from. Если вы действительно хотите предотвратить показ страницы 500, вы можете переопределить метод rescue_action_in_public на вашем контроллере XHR.

+0

Это сделало трюк. Тестирование было каменным перетаскиванием, но rescue_action_in_public было именно тем, что мне нужно было искать. Благодаря! – womble

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