Rails 3: comment renvoyer des erreurs dans une requête JSON?

Comment puis-je retourner une erreur 800, 404, etc. lorsqu’un utilisateur effectue une requête JSON / XML sur mon API?

J’ai essayé

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

sans succès.

Aussi, j’ai essayé de mettre un “respond_to” mais cela ne fonctionne pas aussi bien (il duplique le respond_to et donne une erreur).

Merci

De la même manière que vous retournez de telles erreurs avec HTML, cela fait partie de l’en-tête HTTP.

 render json: @myobject, status: :unprocessable_entity 

Mise à jour, réponse au commentaire:

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

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

qui correspond simplement au symbole de la liste des statuts (les chaînes sont converties en symboles) Voici la liste des nouveautés : https://github.com/rack/rack/blob/master/lib/rack/utils.rb#L575 -L638

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