21 lines
359 B
Ruby
21 lines
359 B
Ruby
module Trashable
|
|
extend ActiveSupport::Concern
|
|
|
|
included do
|
|
default_scope { where(deleted_at: nil) }
|
|
end
|
|
|
|
module ClassMethods
|
|
def trashed
|
|
self.unscoped.where(self.arel_table[:deleted_at].not_eq(nil))
|
|
end
|
|
end
|
|
|
|
def destroy
|
|
update_column :deleted_at, Time.now
|
|
end
|
|
|
|
def recover
|
|
update_attribute :deleted_at, nil
|
|
end
|
|
end |