ruby-on-rails - rails : validation error codes in JSON

标签 ruby-on-rails json

因此,我正在编写具有用于移动应用程序的 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/

相关文章:

ruby-on-rails - Rails 3 - 设计 : How to skip the 'current_password' when editing a registration?

java - MySQL JSON_SEARCH 和 JSON_REPLACE 不转义引号

php - 如何从 MYSQL PHP 解码 JSON

javascript - 使用 Cocoon Rails 动态生成嵌套形式

ruby-on-rails - CodeRay 样式表

javascript - 从 JavaScript 的 API 加载 JSON 数据

json - 从 Handlebars 模板中的 JSON 数组中获取最后一个元素

android - 从json、android下载图片

ruby-on-rails - 如何让 "gem install"在没有 seg 错误的情况下使用 Ruby 1.8.7 在 OS X Lion 上工作?

ruby-on-rails - CanCan 中最安全和最可靠的方式来执行访客、用户、管理员权限