Wie können Sie 503 Service, der in Rails nicht verfügbar ist, für die gesamte Anwendung zurückgeben?
Wie machen Sie dasselbe für bestimmte Controller?
ruby-on-rails
http
http-status-codes
http-status-code-503
Sathish Manohar
quelle
quelle
render "custom_unavailable_page"
anstelle vonrender :nothing => true
custom_unavailable_page
wäre der Name der Ansichtsdatei, die Sie rendern würden.:nothing
Option ist veraltet und wird in Rails 5.1 entfernt. Verwenden Siehead
Methode, um mit leerem Antwortkörper zu antwortenSie können verwenden
head
head 503 # or head :service_unavailable
quelle
:nothing
Option ist veraltet und wird in Rails 5.1 entfernt. Verwenden Siehead
Methode, um mit leerem Antwortkörper zu antwortenhead
und wenn Sie die ursprüngliche Antwort für die Nachwelt behalten möchten, geben Sie sie einfach unten als "ursprüngliche Antwort" oder so ein. Ich denke, wir können uns alle einig sein, dass dieshead
der richtige Weg ist, zumal diesrender nothing: true
bei aktuellen Rails-Versionen veraltet ist.Folgendes funktioniert für mich:
format.any { render :json => {:response => 'Unable to authenticate' },:status => 401 }
Die
:response
für die HTML-Antwort, nur für den Fall, dass über den Browser darauf zugegriffen wird.Der Renderkopf 503 scheint mit der obigen Anweisung nicht zu arbeiten.
quelle