The ActsAsParanoid gem
provides soft delete functionality to
ActiveRecord objects in Rails. You
can enhance a model with its functionality like so:
class User < ActiveRecord::Base acts_as_paranoid end
This gem hijacks
functionality. If you call either of these methods, instead of the record
being deleted from the database, it’s
deleted_at column is updated from
nil to the current timestamp. Resulting in a soft deleted record.
If you call
destroy! a second time (i.e. on a record that has
already been soft deleted), it will be actually deleted from the database.
Alternatively, you can call
destroy_fully! from the beginning to skip the