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

时间:2011-05-14 20:14:59

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

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

我试过

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

没有成功。

另外,我试图设置一个“respond_to”,但它不能正常工作(它复制了respond_to并给出了错误)。

由于

1 个答案:

答案 0 :(得分:66)

与使用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方法。阅读源代码很有趣!