From 953d129bb200924db1bf11c25e893416ca93339c Mon Sep 17 00:00:00 2001 From: Hemant Kumar Date: Wed, 22 Sep 2010 01:30:10 +0530 Subject: remove join table rows before removing owner row for habtm associations, fixes#5674 --- activerecord/lib/active_record/associations.rb | 2 +- .../cases/associations/has_and_belongs_to_many_associations_test.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'activerecord') diff --git a/activerecord/lib/active_record/associations.rb b/activerecord/lib/active_record/associations.rb index acfc5ccf14..e6c462dec1 100644 --- a/activerecord/lib/active_record/associations.rb +++ b/activerecord/lib/active_record/associations.rb @@ -1416,8 +1416,8 @@ module ActiveRecord include Module.new { class_eval <<-RUBY, __FILE__, __LINE__ + 1 def destroy # def destroy - super # super #{reflection.name}.clear # posts.clear + super # super end # end RUBY } diff --git a/activerecord/test/cases/associations/has_and_belongs_to_many_associations_test.rb b/activerecord/test/cases/associations/has_and_belongs_to_many_associations_test.rb index 8bb8edde0e..2bdf9d8971 100644 --- a/activerecord/test/cases/associations/has_and_belongs_to_many_associations_test.rb +++ b/activerecord/test/cases/associations/has_and_belongs_to_many_associations_test.rb @@ -425,7 +425,7 @@ class HasAndBelongsToManyAssociationsTest < ActiveRecord::TestCase def test_removing_associations_on_destroy david = DeveloperWithBeforeDestroyRaise.find(1) assert !david.projects.empty? - assert_nothing_raised { david.destroy } + assert_raise(RuntimeError) { david.destroy } assert david.projects.empty? assert DeveloperWithBeforeDestroyRaise.connection.select_all("SELECT * FROM developers_projects WHERE developer_id = 1").empty? end -- cgit v1.2.3