status: :ok
在render json: {round: @round}, status: :ok
中做了什么?
有时一切都没有它,但有时它是防止出现错误的必要条件,
ActionController::UnknownFormat (ActionController::UnknownFormat):
我使用Angular作为前端,使用Rails作为后端。
我的理解是,Rails控制器操作中的最后一行将服务器响应转换回json
格式,以便Angular可以读取它(不是100%确信这是正确的解释)。
但我不明白为什么要使用以下一种或另一种。有时一个有效,有时另一个有效。
render json: {round: @round}, status: :ok1
respond_to :json
和respond_with @round
任何人都可以分享一些见解吗?
答案 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
可以实际呈现您的回复。