PermanentRecords
This plugin prevents any of your records from being destroyed casually. Any model with a deleted_at datetime column will have that column set rather than being deleted.
Usage
User.find(3).destroy # sets the ‘deleted_at’ attribute to Time.now and returns a frozen record User.find(3).destroy(:force) # executes the real destroy method, the record will be removed from the database User.delete_all # bye bye everything
There are also two named scopes provided for easily searching deleted and not deleted records:
User.send :with_deleted { User.find(:all) } # only returns deleted records. User.send :with_not_deleted { User.find(:all) } # you guessed it.
These are named so as to work smoothly with other scoping plugins like scope_out.
Copyright © 2008 Jack Danger Canty of adPickles Inc., released under the MIT license