title: Why does Rails want to return "head :no_content" for JSON PUT requests?
body: <p>After I run<br>
  <code>rails generate scaffold User</code><br>
  The generated controller function in Rails 3.2.11 for updating a user looks like this:</p>
  
  <pre><code>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
  </code></pre>
  
  <p>The line I'm curious about is returning <code>head :no_content</code> for a successful JSON update request.  I've done some googling, as I was guessing that this is some sort of RESTful property, to not return the updated object, but I couldn't find anything that claimed that was the case.</p>
  
  <p>Why is this the default, versus returning the JSON representation of the User object post-update?</p>