rails how content_for application ruby-on-rails json jbuilder

ruby on rails - how - Rails: Render Json Status Problems



rails content_for (1)

Cuando yo

render json: { error: "No such user; check the submitted email address", status: 400 }

y luego hacer mis pruebas y comprobar si hay

response.code

Obtengo 200 en lugar de 400

Estoy seguro de que la respuesta a esta absurdamente simple, pero he estado buscando durante una hora y parece que no puedo hacer funcionar esto. Podría simplemente analizar el Json y luego verificar el código de estado ... pero ¿no hay una manera de obtener response.code para devolver el estado? Entiendo que técnicamente fue un éxito y supongo que es por eso que el código de respuesta está regresando a 200, pero estaba usando Jbuilder antes de que pudiera impactar directamente el código devuelto.


Usted creó el json allí, que será devuelto, y en ese json habrá una identificación del estado - 400. Sin embargo, eso no le dice a Rails que envíe el estado 400 en el encabezado.

Podrías hacerlo:

render json: { error: "No such user; check the submitted email address", status: 400 }, status: 400

O algo como

payload = { error: "No such user; check the submitted email address", status: 400 } render :json => payload, :status => :bad_request

Puede utilizar el símbolo: bad_request o el número de estado 400.