【问题标题】:Rails 3: How to return errors in a JSON request?Rails 3:如何在 JSON 请求中返回错误?
【发布时间】:2011-05-14 20:14:58
【问题描述】:

当用户向我的 API 发出 JSON/XML 请求时,我如何返回 800、404 等错误?

我试过了

error 404, {:error => "ERror".to_json }

没有成功。

另外,我尝试添加“respond_to”,但效果不佳(它复制了 respond_to 并给出错误)。

谢谢

【问题讨论】:

  • 你能显示一些代码吗,我不明白你对重复的respond_to的意思
  • 我从未听说过 http 代码 800 ;)

标签: json ruby-on-rails-3 api


【解决方案1】:

与使用 html 返回此类错误的方式相同,它是 HTTP 标头的一部分。

render json: @myobject, status: :unprocessable_entity

更新,回复评论:

您可以从 Rack 获取所有状态代码。 Rails 将符号化状态传递给 Rack

Rack::Utils.status_code(options[:status])

简单地将符号与状态列表匹配(字符串被转换为符号) 这里是吸烟新鲜名单:https://github.com/rack/rack/blob/master/lib/rack/utils.rb#L575-L638

向下滚动一点,您会看到status_code 方法。看源码很有趣!

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-01
  • 1970-01-01
  • 2016-01-13
  • 1970-01-01
  • 2022-06-12
  • 2019-11-12
相关资源
最近更新 更多