You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Make any ActiveRecord model paranoid by just including Immortal, and instead of being deleted from the database, the object will just marked as 'deleted' with a boolean field in the database.
Installation
Add the gem dependency to your Gemfile:
gem 'immortal'
Usage
class User < ActiveRecord::Base
include Immortal
end
And add a boolean field called deleted to that model:
class AddDeletedToUsers < ActiveRecord::Migration
def self.up
add_column :users, :deleted, :boolean
end
def self.down
remove_column :users, :deleted
end
end
TODO
Add documentation in the code
Spec associations
Add support for a :with_deleted option in associations, like acts_as_paranoid
0.1.5 Add "without deleted" scope to join model by overriding HasManyThroughAssociation#construct_conditions
rather than simply adding to has_many conditions.
0.1.4 fix bug where ALL records of any dependent associations were
immortally deleted if assocation has :dependant => :delete_all option
set
0.1.3 fix bug where join model is not immortal
0.1.2 fix loading issue when the deleted column doesn't exist (or even the table)
0.1.1 fix behavior with has_many :through associations