Innen-Controller Sie rescue_from
verwenden können, nur für Fehler, die sich in Ihrem Controller (in Aktionen, Ansichten oder Filtern) ergeben.
Es sieht aus wie ActionController::BadRequest
erhöht, bevor Routing Anforderungen an Controller (irgendwo in Middleware-Stack) übergibt.
können Sie solche Fehler bearbeiten, wenn Sie eigene Middleware wie folgt schreiben:
class HandleErrorsMiddleware
def initialize(app)
@app = app
end
def call(env)
@app.call(env)
rescue ActionController::BadRequest
ApplicationController.action(:raise_bad_request).call(env)
end
end
raise_bad_request
sollte in ApplicationController
öffentliche Methode sein
Sie sollten diese Middleware Sie in config/application.rb
hinzufügen
config.middleware.insert_before 'ActionDispatch::ParamsParser', 'HandleErrorsMiddleware'
Sie Hast du andere rescue_from-Anweisungen? Auftragsangelegenheiten. –
tue ich, aber ich bin mir nicht sicher, ich verstehe wie? Ich habe 3: rescue_from ActionDispatch :: RemoteIp :: IpSpoofAttackError, mit:: ip_spoof_error rescue_from ActionController :: UnknownFormat, mit:: raise_not_found rescue_from ActionController :: BadRequest, mit:: raise_not_found –
Gleiches Problem hier, konnte es nicht lösen. .. – Dorian