Angesichts der folgenden Rails 4.2 Controller:
%Vor% Wenn ich mit RSpec 3 versuche, diese Aktion index
aufzurufen und den Status 401 zu haben, habe ich immer den Status 200.
Der einzige Moment, wo ich die 401 bekommen habe ist, den index
Aktionsinhalt durch head 401
zu ersetzen, aber ich würde gerne mit dem Fehler 401 antworten und auch einen "schönen" Körper wie { error: 401, message: 'Unauthorised' }
erstellen.
Warum wird die status: :unauthorised
ignoriert?
Ich musste meinen Controller durch folgendes ersetzen:
%Vor% Die Verwendung von render
verhindert nicht, dass die aufgerufene Aktion ausgeführt wird. Die Verwendung von head :unauthorized
gibt den richtigen Statuscode zurück, jedoch mit einem leeren Text.
Mit self.status
und self.response_body
funktioniert es perfekt.
Sie können sehen, schauen Sie sich den Quellcode meines Edelsteins an, wo ich dieses Problem hatte: Ссылка
Verwenden Sie den Fehlercode anstelle des Namens:
render json: {}, status: 401
Tags und Links ruby ruby-on-rails ruby-on-rails-4