В моем приложении Rails 5.2 у меня есть следующее промежуточное ПО внутри папки app/middleware
:
class CatchJsonParseErrors
def initialize(app)
@app = app
end
def call(env)
begin
@app.call(env)
rescue ActionDispatch::Http::Parameters::ParseError => error
raise error unless env['HTTP_ACCEPT']&.match(/application\/json/)
error_output = "There was a problem in the JSON you submitted: #{error}"
return [
400, { "Content-Type" => "application/json" },
[{ status: 400, error: error_output }.to_json]
]
end
end
end
В моем файле application.rb
есть следующая строка:
config.middleware.insert_before(ActionDispatch::Http::Parameters, "CatchJsonParseErrors")
Когда я пытаюсь запустить мое приложение, оно возвращает следующую ошибку:
`assert_index': No such middleware to insert before: ActionDispatch::Http::Parameters (RuntimeError)
Как я могу это исправить?