因此,我正在编写具有用于移动应用程序的 JSON API 的 Rails Web 应用程序。例如,它向 example.com/api/orders 发送 POST JSON 请求以创建订单。
{id: 1, order: { product_name: "Pizza", price: 10000}}
如果出现验证错误,我可以使用 HTTP 422 错误代码和 json 中的 order.errors.full_messages 进行响应。但是在 JSON 响应中包含特定的错误代码对我来说似乎更好。不幸的是,Rails 似乎不提供为验证错误设置错误代码的能力。如何解决这个问题呢?
最佳答案
您可以使用 status
传递自定义状态代码。呈现响应时的选项。
def create
@order = ...
if @order.save
render json: @order
else
render json: { message: "Validation failed", errors: @order.errors }, status: 400
end
end
我通常倾向于在验证错误时返回 HTTP 400。该消息是一个可读的状态响应,还附加了错误。
这是一个响应示例
{
message: "Validation failed",
errors: [
...
]
}
您还可以嵌入其他属性。
关于ruby-on-rails - rails : validation error codes in JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20423332/