From 47eda9415ca4d32c545bb6436492ff4f94dfbb5c Mon Sep 17 00:00:00 2001 From: Damien Mathieu <42@dmathieu.com> Date: Tue, 22 Jan 2013 15:49:23 +0100 Subject: [PATCH] don't save when destroying a non persisted object --- lib/acts_as_paranoid/core.rb | 2 +- test/test_core.rb | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/acts_as_paranoid/core.rb b/lib/acts_as_paranoid/core.rb index 6377740..8a9e715 100644 --- a/lib/acts_as_paranoid/core.rb +++ b/lib/acts_as_paranoid/core.rb @@ -106,7 +106,7 @@ def destroy with_transaction_returning_status do run_callbacks :destroy do # Handle composite keys, otherwise we would just use `self.class.primary_key.to_sym => self.id`. - self.class.delete_all(Hash[[Array(self.class.primary_key), Array(self.id)].transpose]) + self.class.delete_all(Hash[[Array(self.class.primary_key), Array(self.id)].transpose]) if persisted? self.paranoid_value = self.class.delete_now_value self end diff --git a/test/test_core.rb b/test/test_core.rb index 7b0b935..102aa51 100644 --- a/test/test_core.rb +++ b/test/test_core.rb @@ -63,6 +63,10 @@ def test_real_removal assert_empty ParanoidTime.with_deleted.all end + def test_removal_not_persisted + assert ParanoidTime.new.destroy + end + def test_recovery assert_equal 3, ParanoidBoolean.count ParanoidBoolean.first.destroy