From 35b4bdcff0e697765b562a74bd881e78de97f4d1 Mon Sep 17 00:00:00 2001 From: Jeremy Kemper Date: Tue, 8 Nov 2005 10:19:09 +0000 Subject: Destroy associated has_and_belongs_to_many records after all before_destroy callbacks but before destroy. This allows you to act on the habtm association as you please while preserving referential integrity. Closes #2065. git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@2940 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- activerecord/test/fixtures/developer.rb | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'activerecord/test/fixtures') diff --git a/activerecord/test/fixtures/developer.rb b/activerecord/test/fixtures/developer.rb index ce65ff78c0..29555d926a 100644 --- a/activerecord/test/fixtures/developer.rb +++ b/activerecord/test/fixtures/developer.rb @@ -28,3 +28,13 @@ class DeveloperWithAggregate < ActiveRecord::Base self.table_name = 'developers' composed_of :salary, :class_name => 'DeveloperSalary', :mapping => [%w(salary amount)] end + +class DeveloperWithBeforeDestroyRaise < ActiveRecord::Base + self.table_name = 'developers' + has_and_belongs_to_many :projects, :join_table => 'developers_projects', :foreign_key => 'developer_id' + before_destroy :raise_if_projects_empty! + + def raise_if_projects_empty! + raise if projects.empty? + end +end -- cgit v1.2.3