Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails为什么要返回;标题:无“内容”;对于JSON PUT请求?_Ruby On Rails - Fatal编程技术网

Ruby on rails Rails为什么要返回;标题:无“内容”;对于JSON PUT请求?

Ruby on rails Rails为什么要返回;标题:无“内容”;对于JSON PUT请求?,ruby-on-rails,Ruby On Rails,在我跑步之后 rails生成脚手架用户 Rails 3.2.11中生成的用于更新用户的控制器函数如下所示: def update @user = User.find(params[:id]) respond_to do |format| if @user.update_attributes(params[:user]) format.html { redirect_to @user, notice: 'User was successfully updated.'

在我跑步之后
rails生成脚手架用户

Rails 3.2.11中生成的用于更新用户的控制器函数如下所示:

def update
  @user = User.find(params[:id])

  respond_to do |format|
    if @user.update_attributes(params[:user])
      format.html { redirect_to @user, notice: 'User was successfully updated.' }
      format.json { head :no_content }
    else
      format.html { render action: "edit" }
      format.json { render json: @user.errors, status: :unprocessable_entity }
    end
  end
end
我想知道的是,对于成功的JSON更新请求,返回
head:no_content
。我做了一些谷歌搜索,因为我猜这是某种RESTful属性,不返回更新的对象,但我找不到任何声称是这种情况的东西


为什么这是默认值,而不是在更新后返回用户对象的JSON表示形式?

好问题,显然目的是返回一个HTTP状态代码200,正文为空,请参阅。可能是为了简洁或安全起见
head:no_content
似乎创建了一个带有空正文的HTTP响应200(成功),返回此响应头:

Status Code:200 OK

另请参见。

好问题,我想知道完全相同的事情。我实际上看到
head:no_content
返回一个204 no content,它似乎不会触发
ajax:success
事件。如果要显式返回200,请使用
head 200
。即使
head:ok
在后续请求中也会返回304 not modified。@DamienRoche在
GET
请求中,如果资源确实没有被修改,您会希望返回
304 not modified
,因为这是HTTP缓存工作所必需的。为确保最佳结果集过期/上次修改的标头和/或etag标头也过期。如果
:ok
应该更改,则在后续请求中返回304会让人困惑。。。哪些条件使它成为304?
head:ok
似乎总是为我返回200。