Вам потребуется создать собственное промежуточное программное обеспечение и вставить его до или после в соответствии с требованием в application.rb.
Мне нужно будет обработать ошибку синтаксического анализа json в одном из проектов, и я создал серединукак показано ниже:
class CatchJsonParseErrors
def initialize(app)
@app = app
end
def call(env)
begin
@app.call(env)
rescue ActionDispatch::ParamsParser::ParseError => error
if env['HTTP_ACCEPT'] =~ /application\/json/
error_output = "There was a problem in the JSON: #{error}"
return [
400, { "Content-Type" => "application/json" },
[ { status: 400, error: error_output }.to_json ]
]
else
raise error
end
end
end
end
И добавлено ниже строки в файле application.rb:
config.middleware.insert_before ActionDispatch::ParamsParser, "CatchJsonParseErrors"