title: Rails: update_column works, but not update_attributes
body: <p>I have a simple model:</p>
  
  <pre><code>class Reply &lt; ActiveRecord::Base
    attr_accessible :body
    belongs_to :post
  end
  </code></pre>
  
  <p>In my controller, I have a simple update method:</p>
  
  <pre><code>def update
    @reply = Reply.find(params[:id])
    if @reply.update_attributes!(params[:reply])
      render :js =&gt; "alert('I am trying to update!')"
    else
      render :js =&gt; "alert('&lt;%= @reply.errors %&gt;')"
    end
  end
  </code></pre>
  
  <p>This doesn't throw an error, but neither does it actually update the reply. Instead, I get the "I am trying to update!" message, like everything worked. But when I reload the page and look at the reply, it has the same text. It hasn't actually been updated. If I replace update_attributes with:</p>
  
  <pre><code>@reply.update_column(:body, params[:reply][:body])
  </code></pre>
  
  <p>It works fine. If I use:</p>
  
  <pre><code>@reply.update_attribute(:body, params[:reply][:body])
  </code></pre>
  
  <p>It once again doesn't work. Any idea what's going?</p>
  
  <p>In my log, I have this:</p>
  
  <pre><code>Started PUT "/posts/2/replies/20" for 127.0.0.1 at 2013-01-19 10:39:57 -0600
  Processing by RepliesController#update as JS
  Parameters: {"utf8"=&gt;"✓", "authenticity_token"=&gt;"Xot7E+ldXiBm0hVvw5XUP/U5guJU2g8e4QaLbDVGzDE=", "reply"=&gt;{"body"=&gt;"Updated text."}, "commit"=&gt;"Submit Revision", "post_id"=&gt;"2", "id"=&gt;"20"
  [1m[35mUser Load (1.0ms)[0m  SELECT `users`.* FROM `users` WHERE `users`.`id` = 1 LIMIT 1
  [1m[36mReply Load (0.0ms)[0m  [1mSELECT `replies`.* FROM `replies` WHERE `replies`.`id` = 20 LIMIT 1[0m
  [1m[35m (1.0ms)[0m  BEGIN
  [1m[36mPost Load (0.0ms)[0m  [1mSELECT `posts`.* FROM `posts` WHERE `posts`.`id` = 2 LIMIT 1[0m
  [1m[35m (0.0ms)[0m  COMMIT
  Rendered replies/_reply_content.html.erb (502.0ms)
  Rendered replies/update.js.erb (505.0ms)
  Completed 200 OK in 849ms (Views: 484.0ms | ActiveRecord: 94.0ms)
  </code></pre>