title: Rails 3 Override Destroy without Canceling callbacks, and triggering a ROLLBACK
body: <p>My desired behavior is that when destroy is called on an instance, that instance will not actually be destroyed, but it will just be marked as having been destroyed.  This needs to percolate up for any model associations.</p>
  
  <p>In the models that I don't want to actually destroy, but just mark them as deleted I have a <code>deactivated</code> field.</p>
  
  <p>From what I can tell the &lt; v3.0.0 way of doing this was to override <code>destroy_without_callbacks</code> (That's the way ActsAsParanoid does it), however that method no longer exists in 3.0.0, plus I'm not excited about overriding private methods.</p>
  
  <p>I also tried implementing callbacks, but per the <a href="http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html" rel="nofollow">docs</a> any changes made in the call backs are part of the transaction, and are thus rolled-back as well.</p>
  
  <p>My callback looks like:</p>
  
  <pre><code>  after_destroy :mark_deactivated
  
    def mark_deactivated
      if self.respond_to?(:deactivated) then
        self.deactivated = DateTime.now
        self.save
        false
      else
        true
      end
    end
  </code></pre>
  
  <p>How can I prevent the actual destruction of my record without stopping callback, and having my changes rolled-back?</p>