У меня есть два обработчика rescue_from, обработчик 404 и обработчик catch. Уловка всегда получает вызовы для исключений ActiveRecord:: RecordNotFound, и обработчик 404 никогда не вызывается. Я ожидаю, что обработчик с большей спецификой будет вызван, но этого не произойдет.
application_controller.rb
# ActiveRecord 404
rescue_from ActiveRecord::RecordNotFound do |e|
...
end
# Catch all unhandled exceptions
rescue_from Exception do |e|
...
end
api docs для rescue_from говорит следующее:
Обработчики наследуются. Их обыскивают справа налево, от вверху вверх и вверх по иерархии. Обработчик первого класса для которого true.is_a? (klass) имеет значение true, это тот, который вызывается, если любой.
Я неправильно интерпретирую выражение. Как получить поведение, которое я ищу?