-
-
Save XORwell/5907969 to your computer and use it in GitHub Desktop.
rails 4 flavored version
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
module SoftDelete | |
extend ActiveSupport::Concern | |
included do | |
define_model_callbacks :soft_delete | |
define_model_callbacks :recover | |
default_scope where(deleted_at: nil) | |
class_eval do | |
class << self | |
alias_method :with_deleted, :unscoped | |
end | |
end | |
end | |
module ClassMethods | |
def only_deleted | |
unscoped.where.not(deleted_at: nil) | |
end | |
end | |
def soft_delete | |
run_callbacks :soft_delete do | |
update_attribute(:deleted_at, Time.current) | |
end | |
end | |
def recover | |
run_callbacks :recover do | |
update_attribute(:deleted_at, nil) | |
end | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment