remove acts_as_paranoid, use .trash! , .recover! and .with_deleted as needed

makes upgrading to rails 4 possible
This commit is contained in:
Sam
2013-05-07 14:39:01 +10:00
parent a71a15913c
commit e9fc272db7
21 changed files with 77 additions and 36 deletions
+32
View File
@@ -0,0 +1,32 @@
module Trashable
extend ActiveSupport::Concern
included do
default_scope where(with_deleted_scope_sql)
end
module ClassMethods
def with_deleted
# lifted from acts_as_paranoid, works around http://stackoverflow.com/questions/8734669/rails-3-1-3-unscoped-scope
scope = self.scoped.with_default_scope
scope.where_values.delete(with_deleted_scope_sql)
scope
end
def with_deleted_scope_sql
self.scoped.table[:deleted_at].eq(nil).to_sql
end
end
def trash!
self.update_column(:deleted_at, DateTime.now)
end
def recover!
# see: https://github.com/rails/rails/issues/8436
self.class.unscoped.update_all({deleted_at: nil}, id: self.id)
raw_write_attribute :deleted_at, nil
end
end