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

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

我试过了

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

没有成功。

此外,我试图把“respond_to”,但它不工作(它重复respond_to并给出错误)。

谢谢

用html返回这样的错误也是一样,它是HTTP Header的一部分。

 render json: @myobject, status: :unprocessable_entity 

更新,回应评论:

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

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

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

滚动一下,你会看到status_code方法。 阅读源代码很有趣!