2012-12-06 3 views
0

J'ai une application rails en heroku. Les valeurs sont transmises au serveur et il fonctionne correctement et parfois il affiche une erreur commecomment attraper les erreurs dans les rails?

<!DOCTYPE html> <html> <head> <title>We're sorry, but something went wrong (500)</title> <style type="text/css"> 
    body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; } 
    div.dialog { 
     width: 25em; 
     padding: 0 4em; 
     margin: 4em auto 0 auto; 
     border: 1px solid #ccc; 
     border-right-color: #999; 
     border-bottom-color: #999; 
    } 
    h1 { font-size: 100%; color: #f00; line-height: 1.5em; } </style> </head> 

<body> <!-- This file lives in public/500.html --> <div class="dialog"> 
    <h1>We're sorry, but something went wrong.</h1> 
    <p>We've been notified about this issue and we'll take a look at it shortly.</p> </div> </body> </html> 

donc je ne veux pas ces erreurs en tant que telle. Au lieu de cela, je veux obtenir ces erreurs et afficher quelque chose comme unexpected error dans json à l'application. Comment puis-je faire ceci? Aidez-moi, s'il vous plaît.

Répondre

2

Ajoutez le code suivant dans application_controller.rb

rescue_from "ActiveRecord::RecordNotFound" do |exception| 
    render :json => {:error => 'page not found' } 
end 

De même, vous pouvez ajouter toutes les exceptions dont vous avez besoin dans la méthode de rescue_from

rescue_from "Exception" do |exception| 
render :json => {:error => 'Unexpected error occurred' } 
end 
+0

Non, je n'ai pas demandé l'affichage des erreurs. Je voulais attraper l'erreur et éditer le message d'erreur et l'envoyer comme json à l'application. – logesh

+0

J'ai mis à jour la réponse – shivashankar

+0

Vous avez mentionné "ActiveRecord :: RecordNotFound", je dois donc spécifier chaque erreur puis json correspondant ou est-ce qu'il y a quelque chose qui spécifie toutes les erreurs et affiche le même json pour tous. – logesh

Questions connexes