39 votes

Rails 3: Comment retourner des erreurs dans une requête JSON?

Comment puis-je renvoyer une erreur 800, 404, etc. lorsqu'un utilisateur envoie une requête JSON / XML à mon API?

J'ai essayé

 error 404, {:error => "ERror".to_json }
 

sans succès.

De plus, j'ai essayé de mettre un "respond_to" mais cela ne fonctionne pas aussi bien (cela duplique le respond_to et donne une erreur).

Merci

66voto

oma Points 5398

De la même manière que vous le retour de ces erreurs html, cela fait partie de l'en-Tête HTTP.

render json: @myobject, status: :unprocessable_entity

Mise à jour, la réponse au commentaire:

Vous pouvez obtenir tous les codes d'état de Rack. Rails de passe le symbolisée statut de Rack

Rack::Utils.status_code(options[:status])

qui, tout simplement, correspond au symbole de la liste de l'état (les chaînes de caractères sont convertis en symboles) Voici le tabagisme nouvelle liste: https://github.com/rack/rack/blob/master/lib/rack/utils.rb#L549-L608

Faites défiler un peu plus bas et vous verrez l' status_code méthode. C'est amusant de lire le code source!

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X