From 066c2bed42f62fb8446ad794fca359af741cd1a7 Mon Sep 17 00:00:00 2001 From: Sam Date: Tue, 7 May 2013 14:46:46 +1000 Subject: [PATCH] better comments --- lib/trashable.rb | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/lib/trashable.rb b/lib/trashable.rb index 919545579aa..6210fae936f 100644 --- a/lib/trashable.rb +++ b/lib/trashable.rb @@ -3,28 +3,36 @@ module Trashable included do default_scope where(with_deleted_scope_sql) + + # scope unscoped does not work end module ClassMethods def with_deleted - # lifted from acts_as_paranoid, works around http://stackoverflow.com/questions/8734669/rails-3-1-3-unscoped-scope + # lifted from acts_as_paranoid, works around https://github.com/rails/rails/issues/4306 + # + # with this in place Post.limit(10).with_deleted, will work as expected + # 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 + scoped.table[:deleted_at].eq(nil).to_sql end end def trash! - self.update_column(:deleted_at, DateTime.now) + update_column(:deleted_at, DateTime.now) end def recover! # see: https://github.com/rails/rails/issues/8436 + # + # Fixed in Rails 4 + # self.class.unscoped.update_all({deleted_at: nil}, id: self.id) raw_write_attribute :deleted_at, nil end