Как говорят AMS docs , мы можем использовать ActiveModel::Serializer::ErrorSerializer
для генерации ответа об ошибках JSON API. Кажется, что он вызывает errors
и предполагает наличие объекта ActiveModel. Таким образом, приведенный ниже код работает и отправляет сообщение об ошибке, но не код (например, код 500
), и он также не использует ErrorSerializer
.
def user_not_authorized
render jsonapi: errors_response, status: :unathorized
end
def errors_response
{
errors:
[
{ message: 'You are not authorized to perform this action.' }
],
title: 'Invalid Attribute'
}
end
Более того, он отображается вconsole:
Rendered ActiveModel::Serializer::Null with Hash
При попытке использовать ErrorSerializer
следующим образом:
def user_not_authorized
render jsonapi: errors_response, status: :unathorized, serializer: ActiveModel::Serializer::ErrorSerializer
end
выдает ошибку:
NoMethodError (undefined method `errors' for #<Hash:0x00007fcf12d84d78>)
Возникла проблема открывается в репозитории AMS по этому поводу и выглядит так, как будто оно не реализовано. Любая идея о том, как правильно сделать это в приложении Rails API?