ruby-on-rails - rails : Render Json Status Problem

当我

  render json: {
    error: "No such user; check the submitted email address",
    status: 400
  }

然后做我的测试并检查

response.code

我得到 200 而不是 400

我确信这个荒谬的简单答案,但我一直在寻找一个小时,似乎无法让这个工作。我可以只解析 Json,然后检查状态码……但没有办法让 response.code 返回状态吗?我知道从技术上讲它是成功的,我认为这就是 response.code 返回 200 的原因,但我之前使用的是 Jbuilder,我可以直接影响返回的代码。

最佳答案

您已经在那里创建了 json,它将被返回,并且在该 json 中将是状态的标识 - 400。但是,这并没有告诉 Rails 在 header 中发送 400 状态。

你可以这样做:

render json: {
  error: "No such user; check the submitted email address",
  status: 400
}, status: 400

或者类似的东西

payload = {
  error: "No such user; check the submitted email address",
  status: 400
}
render :json => payload, :status => :bad_request

您可以使用符号 :bad_request 或状态号 400。

关于ruby-on-rails - rails : Render Json Status Problems,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21896521/

相关文章:

c# - 使用 Json.Net 以 dd/MM/yyyy 格式反序列化日期

json - 如果整数以前导零开头,为什么 JSON 无效?

json - 使用一些已知和一些未知的字段名解码 JSON

javascript - 脚本5009 : 'JSON' is undefined

json - PostgreSQL 嵌套 JSON 查询

c# - 反序列化客户端 AJAX JSON 日期

json - jackson 自动将 Joda DateTime 格式化为 ISO 8601 格式

json - 从动态 json 数据更新力有向图上的链接

json - 可以引用 JSON 数字吗?

arrays - 如何定义键值对的 Typescript Map。其中key是一个数字,value是