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