Rails 3:如何在 JSON 请求中返回错误?
当用户向我的 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
与使用 html 返回此类错误的方式相同,它是 HTTP 标头的一部分。
更新,回复评论:
您可以从 Rack 获取所有状态代码。 Rails 将符号化状态传递给 Rack,
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.
Update, response to comment:
You can get all the status codes from Rack. Rails passes the symbolized status to Rack
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!