Rails 3:如何在 JSON 请求中返回错误?

发布于 2024-11-06 22:05:02 字数 216 浏览 1 评论 0原文

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

我尝试过

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

但没有成功。

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

谢谢

How can I return a 800, 404, etc error when a user makes a JSON/XML request to my API?

I've tried

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

with no success.

Also, I've tried to put a "respond_to" but it doesn't work as well (it duplicates the respond_to and gives error).

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

在巴黎塔顶看东京樱花 2024-11-13 22:05:02

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

render json: @myobject, status: :unprocessable_entity

更新,回复评论:

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

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

Rack 只需将符号与状态列表进行匹配(字符串将转换为符号)
这是吸烟新鲜列表: https:// github.com/rack/rack/blob/master/lib/rack/utils.rb#L575-L638

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

The same way you return such errors with html, it's part of the HTTP Header.

render json: @myobject, status: :unprocessable_entity

Update, response to comment:

You can get all the status codes from Rack. Rails passes the symbolized status to Rack

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

which simply matches the symbol to the list of status (the strings are converted to symbols)
Here is the smoking fresh list: https://github.com/rack/rack/blob/master/lib/rack/utils.rb#L575-L638

Scroll a bit lower and you'll see the status_code method. It's fun to read the source code!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文