Permalink
Switch branches/tags
Nothing to show
Find file
Fetching contributors…
Cannot retrieve contributors at this time
46 lines (36 sloc) 1.02 KB
DeleteSoftly
============
Add soft delete functionality to ActiveRecord models. Important information:
This is Rails3 only, no backwards compatibility. Important features are
* It works through relations
* papertrail support
Tested with Postgresql
New in version 0.3
* without_deleted, same as active, but not meant to be overwritten
* deleted is back, misteriously disappeared in version 0.2
Example
=======
class Post
# Replace normal behavior of object completely
delete_softly
end
class Comment
# Rely on calling active for this object when needed
delete_softly false
end
Now the following stuff works:
== The Post model ==
p1 = Post.create
p2 = Post.create
Post.count #=> 2
p2.destroy
Post.count #=> 1
Post.at_time(1.year.ago).count #=> 0
c1 = Comment.create
c2 = Comment.create
Comment.count #=> 2
c1.destroy
Comment.count #=> 2 (Since we added false)
Comment.active.count #=> 1
See the rdoc for better examples and documentation
Copyright (c) 2010 [Benjamin ter Kuile], released under the MIT license