Reagiere mit einem nicht autorisierten Status (401) mit Rails 4

8

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?

    
ZedTuX 23.01.2015, 22:14
quelle

3 Antworten

5

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: Ссылка

    
ZedTuX 24.01.2015, 09:49
quelle
6

Verwenden Sie den Fehlercode anstelle des Namens: render json: {}, status: 401

    
Alex Tonkonozhenko 23.01.2015 23:45
quelle
0

Ersetzen Sie unauthorised durch unauthorized

    
Pierre-Louis Gottfrois 23.01.2015 22:16
quelle