什么`status :: ok`在`render json:`(Rails)中做什么

时间:2016-04-25 12:39:52

标签: ruby-on-rails angularjs json

status: :okrender json: {round: @round}, status: :ok中做了什么?

有时一切都没有它,但有时它是防止出现错误的必要条件,

ActionController::UnknownFormat (ActionController::UnknownFormat):

我使用Angular作为前端,使用Rails作为后端。

我的理解是,Rails控制器操作中的最后一行将服务器响应转换回json格式,以便Angular可以读取它(不是100%确信这是正确的解释)。

但我不明白为什么要使用以下一种或另一种。有时一个有效,有时另一个有效。

  1. render json: {round: @round}, status: :ok1
  2. respond_to :jsonrespond_with @round
  3. 任何人都可以分享一些见解吗?

2 个答案:

答案 0 :(得分:5)

  

status: :ok

render json:做了什么

这意味着响应将与200 OK http响应代码一起发送。

答案 1 :(得分:2)

status: :ok中的render json: {round: @round}, status: :ok告诉render方法更改HTTP标头(Rendering in Rails Guide)中默认为200 OK的状态代码。因此,在:ok的情况下,应该没有区别。

您的方法调用告诉render方法以json格式呈现哈希{round: @round},状态代码为200 OK

api dock告诉您有关respond_to用法的更多信息,该用途用于区分不同的内容类型,而render可以实际呈现您的回复。