J'ai deux gestionnaires rescue_from, un gestionnaire 404, et un gestionnaire catch all. Le catch all est toujours appelé pour les exceptions ActiveRecord::RecordNotFound et le gestionnaire 404 n'est jamais appelé. Je m'attendais à ce que le gestionnaire le plus spécifique soit appelé mais cela ne se produit pas.
application_controller.rb
# ActiveRecord 404
rescue_from ActiveRecord::RecordNotFound do |e|
...
end
# Gérer toutes les exceptions non gérées
rescue_from Exception do |e|
...
end
Les docs api pour rescue_from disent ce qui suit:
Les gestionnaires sont hérités. Ils sont recherchés de droite à gauche, de bas en haut, et dans la hiérarchie. Le gestionnaire de la première classe pour laquelle exception.is_a?(klass) est vrai est celui invoqué, s'il y en a.
Est-ce que j'interprète mal la déclaration ci-dessus. Comment obtenir le comportement que je recherche?