2009-06-04 5 views
1

J'ai un tas d'actions XHR dans un contrôleur, qui renvoient du code HTML à insérer dans la page. Si la réponse est une erreur, alors elle place la sortie dans une erreur spéciale div. Jusqu'à présent, rien de particulièrement intéressant. Toutefois, ce processus général ne fonctionne pas pour la gestion des exceptions de Rails. Si je déclenche une exception dans mes actions XHR, je reçois la sortie générique du gestionnaire d'erreurs 500 dans mon div d'erreur, ce qui semble un peu horrible. Bien que je puisse attraper toutes les exceptions possibles dans mon action et rendre une erreur plus appropriée, je perds la journalisation et la notification d'exception standard, ce qui est nul. Donc, la seule solution à laquelle je puisse penser est de pouvoir spécifier un fragment HTML différent de 500 gestionnaires à utiliser pour ces actions spécifiques, mais je ne trouve pas grand-chose. Quelqu'un a une idée?Gestionnaire d'exceptions spécifique à l'action HTML dans Rails

Répondre

2

Vous devriez être capable de vérifier le code d'état 500 dans votre gestionnaire javascript et d'afficher un message générique comme "Problème du serveur". S'il y a des cas où un message d'erreur plus spécifique serait utile à un utilisateur final dans un environnement de production, vous devrez attraper ces exceptions avec une clause rescue_from. Si vous voulez vraiment empêcher l'affichage de la page 500, vous pouvez remplacer la méthode rescue_action_in_public sur votre contrôleur XHR.

+0

Cela a fait l'affaire. Testant c'était un frein de pierre, mais rescue_action_in_public était exactement ce que j'avais besoin d'aller chercher. Merci! – womble

Questions connexes