Vous pouvez également définir une méthode 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
En fonction de votre objectif, vous pouvez également envisager de NE PAS gérer les exceptions sur une base par contrôleur. À la place, utilisez quelque chose comme le gem exception_handler pour gérer les réponses aux exceptions de manière cohérente. En prime, cette approche gérera également les exceptions qui se produisent au niveau de la couche middleware, comme l'analyse des demandes ou les erreurs de connexion à la base de données que votre application ne voit pas. Le gem exception_notifier peut également être intéressant.