2011-05-14 18 views
39

當用戶向我的API發出JSON/XML請求時,如何返回800,404等錯誤?Rails 3:如何在JSON請求中返回錯誤?

我已經試過

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

沒有成功。

此外,我試圖把「respond_to」,但它不工作(它重複respond_to並給出錯誤)。

謝謝

+0

你可以顯示一些代碼,我不明白你的意思與重複respond_to – oma 2011-05-14 20:28:18

+3

我從來沒有聽說過http代碼800;) – oma 2011-05-14 20:29:00

回答

66

就像你用html返回這樣的錯誤一樣,它是HTTP頭部分的一部分。

render json: @myobject, status: :unprocessable_entity 

更新,迴應評論:

你可以從機架中的所有狀態代碼。導軌經過符號化後的狀態機架

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

它簡單地將符號的狀態的列表(字符串被轉換爲符號) 這裏是吸菸新鮮列表匹配:https://github.com/rack/rack/blob/master/lib/rack/utils.rb#L575-L638

滾動有點低和你會看到status_code方法。閱讀源代碼很有趣!

+0

我在哪裏可以得到所有這些:狀態的列表?感謝 – donald 2011-05-14 21:14:14

+2

+1鏈接到狀態。 – fiskeben 2012-01-15 20:22:19

+4

該列表已下載到https://github.com/rack/rack/blob/master/lib/rack/utils.rb#L539 – alexcoco 2013-02-19 18:31:14