2016-04-25 45 views
1

status: :okrender json: {round: @round}, status: :ok中做什麼?在`render json:`(Rails)中`status::ok`做什麼

有時候一切正常,沒有它,但有時它的必要,以防止這樣的錯誤,

ActionController::UnknownFormat (ActionController::UnknownFormat): 

我用角爲前端和Rails的後端。

我的理解是,Rails控制器操作中的最後一行將服務器響應轉換回json格式,以便Angular可以讀取它(並非100%確信這是正確的解釋)。

但我不明白爲什麼要使用下面的一個或另一個。有時一個人工作,有時候另一個人工作。

  1. render json: {round: @round}, status: :ok1
  2. respond_to :jsonrespond_with @round

任何人都可以分享一些見解?

+0

狀態ok:只是一個關鍵值對與你的json表明請求的成功,它不應該是一個瘋狂的領域 –

回答

2

status: :okrender json: {round: @round}, status: :ok中告訴render方法來改變狀態碼,其是200 OK默認在HTTP報頭(Rendering in Rails Guide)。所以在:ok的情況下應該沒有區別。

您的方法調用告訴render方法使用狀態代碼200 OK以json格式呈現散列{round: @round}

api dock告訴您更多關於respond_to的用法,該用法用於區分不同的內容類型,而render完成了實際呈現您的響應的繁重工作。

3

是什麼status: :okrender json:

這意味着響應將與200 OK HTTP響應代碼發送。

相關問題