title: Rails 3 ActiveRecord Transactions
body: <p>I have a model method that I'd like to call from various controllers. It looks something like this:</p>
  
  <pre><code>def Post &lt; ActiveRecord::Base
      def read!
        self.read_at = Time.now
        self.save
        self.thread.status = Status.find_by_name("read")
        self.thread.save
      end
  end
  </code></pre>
  
  <p>In my controller, if I call <code>@post.read!</code>, will this rollback on any errors?</p>