2011-12-21 8 views

Respuesta

82
head :no_content 

Probado con Rails 3.2.x, 4.x Hace que el método del controlador responda con el código de estado 204 Sin contenido HTTP.

Un ejemplo del uso de este método dentro de un controlador llamado foobar:

def foobar 
    head :no_content 
end 
6

Si no desea hacer nada en absoluto se puede hacer esto:

render :nothing => true, :status => 204 

o como esto:

render :nothing => true, :status => 204 and return 

O puede utilizar la parte :status => 204 con cualquier otro comando render

+1

Hay un viejo billete de rieles donde esto se desanimó, pero las cosas podrían haber cambiado desde entonces: https://rails.lighthouseapp.com/ projects/8994/tickets/3499-render-nothing-true-should-set-http-status-204 –

+0

@Michael Kohl: Gracias por este enlace, no estaba al tanto de esto. Por lo que yo entiendo, es más una cuestión de estilo o código legible, y el uso de 'head' en lugar de' render: nothing' debe ser más explícito, como la [Guía de Ruby On Rails] (http: //guides.rubyonrails .org/layouts_and_rendering.html # using-render) explica también –

11

Mira el método head:

Devuelve una respuesta que no tiene contenido (solo encabezados). El argumento opciones se interpreta como un hash de nombres y valores de encabezado.

+0

Gracias Michael. head: ok es para HTTP 200 y head: created es para 201, pero no pude encontrar el argumento que debería usar con head para devolver un 204. – Nonos

+1

Creo que lo encontré: head: no_content o head 204. ¡Gracias! – Nonos

+0

Si esto responde su pregunta, acepte la respuesta marcando la pequeña marca debajo de las flechas de votación para que otros usuarios sepan que este problema está resuelto. –

Cuestiones relacionadas