Ви також можете визначити метод rescue_from.
class ApplicationController < ActionController::Base
rescue_from ActionController::RoutingError, :with => :error_render_method
def error_render_method
respond_to do |type|
type.xml { render :template => "errors/error_404", :status => 404 }
type.all { render :nothing => true, :status => 404 }
end
true
end
end
Залежно від вашої мети, ви також можете розглянути можливість НЕ обробляти винятки на основі кожного контролера. Натомість використовуйте щось на кшталт дорогоцінного каміння винятків_для обробки, щоб послідовно керувати відповідями на винятки. Як бонус, цей підхід також буде обробляти винятки, що трапляються на рівні проміжного програмного забезпечення, такі як розбір запитів або помилки підключення до бази даних, які ваша програма не бачить. Exception_notifier дорогоцінний камінь може також становити інтерес.