2011-05-14 23 views
39

¿Cómo puedo devolver un error 800, 404, etc. cuando un usuario realiza una solicitud JSON/XML a mi API?Rails 3: ¿Cómo devolver los errores en una solicitud JSON?

He intentado

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

sin éxito.

Además, he intentado poner un "respond_to" pero no funciona tan bien (que duplica la respond_to y da error).

Gracias

+0

puede mostrar algún código, no entiendo lo que quiere decir con el duplicado responde_to – oma

+3

Nunca he oído hablar del código http 800) – oma

Respuesta

66

De la misma manera que regrese este tipo de errores con html, es parte de la cabecera HTTP.

render json: @myobject, status: :unprocessable_entity 

actualización, la respuesta al comentario:

se pueden obtener todos los códigos de estado de Rack. Carriles pasa el estado simbolizada a RACK

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

que simplemente coincide con el símbolo a la lista de estado (las cadenas se convierten en símbolos) Aquí es el fumar lista fresco: https://github.com/rack/rack/blob/master/lib/rack/utils.rb#L575-L638

Scroll un poco inferior y Verás el método status_code. ¡Es divertido leer el código fuente!

+0

¿Dónde puedo obtener una lista de todos los: estado? Gracias – donald

+2

+1 por el enlace a los estados. – fiskeben

+4

La lista se ha reducido a https://github.com/rack/rack/blob/master/lib/rack/utils.rb#L539 – alexcoco

Cuestiones relacionadas