2011-12-21 14 views

Odpowiedz

82
head :no_content 

Testowane z Rails 3.2.x, 4.x Powoduje, że metoda sterownika odpowiada na kod stanu HTTP 204 bez zawartości.

Przykładem zastosowania tego środka metodzie kontrolera o nazwie foobar:

def foobar 
    head :no_content 
end 
6

Jeśli nie chcesz, aby uczynić coś w ogóle można to zrobić:

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

lub tak:

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

Albo można użyć :status => 204 część z jakiegokolwiek innego polecenia renderowania

+1

Jest takie stare bilet Szyny gdzie to był zniechęcony, ale rzeczy mogły ulec zmianie od tamtego czasu: https://rails.lighthouseapp.com/ projects/8994/tickets/3499-render-nothing-true-should-set-http-status-204 –

+0

@Michael Kohl: Dzięki za ten link, nie wiedziałem o tym. O ile rozumiem, jest to bardziej kwestia stylu lub czytelnego kodu, a użycie 'head' zamiast' render: nothing' powinno być bardziej wyraźne, jak [Ruby On Rails Guide] (http: //guides.rubyonrails .org/layouts_and_rendering.html # using-render) wyjaśnia również –

11

Spójrz na metody head:

Zwraca odpowiedź, która nie zawiera treści (tylko nagłówki). Argumenty opcji są interpretowane jako mieszanie nazw nagłówków i wartości.

+0

Dzięki Michael. head: ok jest dla HTTP 200 i head: utworzony jest na 201, ale nie mogłem znaleźć argumentu, którego powinienem użyć z headem, aby zwrócić 204. – Nonos

+1

Myślę, że znalazłem: head: no_content lub head 204. Dzięki! – Nonos

+0

Jeśli to odpowiedziałeś na twoje pytanie, zaakceptuj odpowiedź zaznaczając mały znak pod strzałkami do głosowania, aby inni użytkownicy wiedzieli, że problem został rozwiązany. –

Powiązane problemy