Ich möchte von meinem Controller zurückkehren, wenn entweder eine Überprüfung fehlgeschlagen ist oder ein Parameter mit 400 - bad request
fehlt. Also in meinem Controller, wennSchienen 4.2 ActionController: BadRequest benutzerdefinierte Fehlermeldung
if params["patch"].nil? then
raise ActionController::BadRequest.new("The Json body needs to be wrapped inside a \"Patch\" key")
end
und ich fange diese Fehler in meinem Application Controller mit:
rescue_from ActionController::BadRequest, with: :bad_request
def bad_request(exception)
render status: 400, json: {:error => exception.message}.to_json
end
Aber es scheint, als ob ich nicht benutzerdefinierte Nachrichten hinzufügen kann, wenn ActionController::BadRequest
erhöht. Bei der Übergabe eines ungültigen Körpers ist die Antwort nur {"error":"ActionController::BadRequest"}
und nicht der Hash, den ich zur Verfügung gestellt habe.
In der Konsole bekomme ich das gleiche Verhalten. raise ActiveRecord::RecordNotFound, "foo"
tatsächlich erhöht ActiveRecord::RecordNotFound: foo
.
Aber raise ActionController::BadRequest, "baa"
Ergebnisse in
ActionController::BadRequest: ActionController::BadRequest
Wie kann ich benutzerdefinierte Nachrichten an die BadRequest
Ausnahme hinzufügen?