title: self.update_attributes not updating the attribute
body: <p>I'm calling <code>update_attributes</code> but it doesn't seem to be changing the object.</p>
  
  <pre><code>  def add_to_vote_count(increment)
      vc = vote_count ? vote_count : 0
      puts "CALLED a_t_v_c(#{increment}), NEW VOTE COUNT SHOULD BE #{vc + increment}"
      self.update_attributes(:vote_count =&gt; (vc + increment))
    end
  </code></pre>
  
  <p>Here's some console testing:</p>
  
  <pre><code>ruby-1.8.7-p299 &gt; p = Factory(:playlist)
   =&gt; #&lt;Playlist id: 56, user_id: 0, message: "Lorem ipsum dolor sit amet, consectetur adipisicing...", title: "Ipsum Dolor", flag: 2, created_at: "2010-08-12 18:18:51", updated_at: "2010-08-12 18:18:51", moderation_score: 0, photo_file_name: nil, photo_content_type: nil, photo_file_size: nil, photo_updated_at: nil, category_id: nil, widget_id: 22100001, permalink: #&lt;ActiveSupport::Multibyte::Chars:0x102feba48 @wrapped_string="ipsum-dolor-27"&gt;, cached_tag_list: "", vote_count: 0&gt; 
  
  ruby-1.8.7-p299 &gt; p.vote_count
   =&gt; 0 
  ruby-1.8.7-p299 &gt; p.votes
   =&gt; [] 
  ruby-1.8.7-p299 &gt; p.votes &lt;&lt; Vote.new(:vote =&gt; true)
  CALLED a_t_v_c(1), NEW VOTE COUNT SHOULD BE 1
  
  
  VOTE CREATED
  
   =&gt; [#&lt;Vote id: 235, vote: true, voteable_id: 56, voteable_type: "Playlist", voter_id: nil, voter_type: nil, created_at: "2010-08-12 18:19:09", updated_at: "2010-08-12 18:19:09"&gt;] 
  
  ruby-1.8.7-p299 &gt; p.votes
   =&gt; [#&lt;Vote id: 235, vote: true, voteable_id: 56, voteable_type: "Playlist", voter_id: nil, voter_type: nil, created_at: "2010-08-12 18:19:09", updated_at: "2010-08-12 18:19:09"&gt;] 
  
  ruby-1.8.7-p299 &gt; p.vote_count
   =&gt; 0 
  
  ruby-1.8.7-p299 &gt; p
   =&gt; #&lt;Playlist id: 56, user_id: 0, message: "Lorem ipsum dolor sit amet, consectetur adipisicing...", title: "Ipsum Dolor", flag: 2, created_at: "2010-08-12 18:18:51", updated_at: "2010-08-12 18:18:51", moderation_score: 0, photo_file_name: nil, photo_content_type: nil, photo_file_size: nil, photo_updated_at: nil, category_id: nil, widget_id: 22100001, permalink: #&lt;ActiveSupport::Multibyte::Chars:0x102feba48 @wrapped_string="ipsum-dolor-27"&gt;, cached_tag_list: "", vote_count: 0&gt; 
  </code></pre>
  
  <p>Any idea why nothing is getting saved?  I don't get any errors, and calling the methods normally returns the 'correct' results.</p>
  
  <pre><code>ruby-1.8.7-p299 &gt; p.update_attributes(:vote_count =&gt; 100)
   =&gt; true 
  ruby-1.8.7-p299 &gt; p.vote_count
   =&gt; 100 
  ruby-1.8.7-p299 &gt; p.add_to_vote_count(10)
  CALLED a_t_v_c(10), NEW VOTE COUNT SHOULD BE 110
   =&gt; true 
  ruby-1.8.7-p299 &gt; p.vote_count
   =&gt; 110
  </code></pre>
  
  <p>The only difference I can see is that <code>add_to_vote_count</code> is being called by the <code>Vote</code> class in its <code>after_create</code> method.  As you can see from the output, though, <code>add_to_vote_count</code> is definitely getting called.</p>
  
  <pre><code>  #in vote.rb
    def after_create
      voteable.add_to_vote_count( vote ? 1 : -1 )
      puts "\n\nVOTE CREATED\n\n"
    end
  </code></pre>
  
  <p><strong>Edit</strong>: Actually, it turns out that the object is getting updated, but my reference is not.  That is to say, <code>p</code> returns the old version with no votes, but <code>Playlist.find(p.id)</code> returns the correct one.  I assume this is due to caching (Rails doesn't want to hit the database again for an item it should have in memory), so how do I force Rails to realize that stuff changed?</p>