From 4a9ae5a1e08d40ab68d717b89afb5ed4bf66f12d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mislav=20Marohni=C4=87?= Date: Wed, 14 Oct 2009 21:54:39 +0200 Subject: [PATCH] fix some destroy/restore edge cases with ActiveRecord 2.3.4 --- lib/is_paranoid.rb | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/is_paranoid.rb b/lib/is_paranoid.rb index 5f6a80d..3c7f139 100644 --- a/lib/is_paranoid.rb +++ b/lib/is_paranoid.rb @@ -44,7 +44,8 @@ def self.find_with_destroyed *args # Mark the model deleted_at as now. def destroy_without_callbacks - self.update_attribute(:deleted_at, Time.now.utc) + self.deleted_at = Time.now.utc + update_without_callbacks end # Override the default destroy to allow us to flag deleted_at. @@ -62,7 +63,9 @@ def destroy # Set deleted_at flag on a model to nil, effectively undoing the # soft-deletion. def restore - self.update_attribute(:deleted_at, nil) + self.deleted_at_will_change! + self.deleted_at = nil + update_without_callbacks end end end