Paranoia
As the name suggests, there are times when we never want data to be really deleted from the database, but simply marked for deletion. This is indeed paranoid, but is required for data-sensitive applications where we need to keep a track of all documents, even when they are deleted. The Paranoia module has been removed from Mongoid 4.0 and put into a separate gem. So, to enable it, we need to include the mongoid-paranoia
gem in our Gemfile
.
Here is a simple example:
class Book include Mongoid::Document include Mongoid::Paranoia end
Let's see how this works, as shown in the following code snippet:
irb> b = Book.last => #<Book _id: 51d579e245db7c6a66000001, deleted_at: nil, t(title): "test" author_id: "51b42d4245db7c9535000001 > irb> b.delete => true irb> Book.where(id: '51d579e245db7c6a66000001').first => nil irb> Book.unscoped.where(id: '51d579e245db7c6a66000001').first => #<Book _id: 51d579e245db7c6a66000001, deleted_at: 2013-08-24 15:25...