After_filter для исключений
Есть ли что-то похожее на after_filter, который все еще работает, если действие вызывает исключение?
Я использую внешний регистратор (поскольку я нахожусь на Heroku); заголовки ответов фильтруются и регистрируются в файле after_filter. Если возникает исключение, фильтр не запускается, и у меня нет журнала данных заголовка ответа.
Если я попытаюсь подключиться к log_error или rescue_action_in_public, заголовок ответа не будет выполнен (так как после этого вызывается фактический рендер).
Есть ли еще одна функция, которую я могу переопределить, которая будет вызываться в эквивалентное время для файла after_filter, но всегда запускается независимо от того, выбрано ли исключение?
Спасибо!
Ответы
Ответ 1
Вы можете использовать round_filter и использовать исключения. Например,
# in a controller
around_filter :catch_exceptions
def catch_exceptions
yield
rescue ActiveRecord::RecordNotFound
permission_denied_response # gives a stock error page
end
Вы можете добавить round_filter в класс контроллера application.rb или в отдельный класс контроллера.