Rails 4 AbstractController :: Metall-Rendering mit Status! = 200 (d. h. 401, 404)

8

Ich implementiere eine einfache API in meiner Anwendung, um mit einer Android-Anwendung zu kommunizieren. Ich versuche, AbstractController :: Metal hauptsächlich für die Performance zu verwenden. Das Problem, das ich habe, ist, dass Render ignoriert die Statusoption, die ich übergeben.

Sehr einfaches Beispiel:

%Vor%

Anrufen

%Vor%

Ich würde erwarten, eine 401 zu erhalten, aber stattdessen bekomme ich 200 OK:

%Vor%

Irgendwelche Ideen? Das Überschreiben von response.status ist die einzige Arbeit, die ich bisher gefunden habe, aber ehrlich gesagt sieht es wie ein hässlicher Hack aus.

Vielen Dank im Voraus für Ihre Einsichten.

    
Felipe Koch 27.08.2014, 15:40
quelle

3 Antworten

1

Um nichts zu rendern und den Code 401 use zurückzugeben, verwenden Sie:

%Vor%     
Kamen Kanev 24.01.2016 14:30
quelle
0

benutze head ActionController :: Kopf

%Vor%     
Zhaohan Weng 24.06.2015 19:31
quelle
0

Ich hatte das gleiche Problem mit dem unten gezeigten Beispielcode. Dies funktionierte mit ActionController::Metal in Rails 3 und begann nach dem Upgrade auf Rails 4.2.4 :

zu versagen %Vor%

Der Test ist nach dem Upgrade fehlgeschlagen. Um das zu lösen, musste ich mich um

kümmern

class UnauthorizedController < ActionController::Metal

bis

class UnauthorizedController < ActionController::Base

    
ddreliv 23.11.2015 22:25
quelle

Tags und Links