From 87d1aba3cba0d9b02490784b3090b0e5c94f56df Mon Sep 17 00:00:00 2001 From: Ivan Antropov Date: Sat, 26 Oct 2013 12:35:59 +0700 Subject: Fix bug, when ':dependent => :destroy' option violates foreign key constraints, issue #12380 --- .../associations/belongs_to_associations_test.rb | 36 ++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'activerecord/test/cases') diff --git a/activerecord/test/cases/associations/belongs_to_associations_test.rb b/activerecord/test/cases/associations/belongs_to_associations_test.rb index a79f145e31..19a8ae75ea 100644 --- a/activerecord/test/cases/associations/belongs_to_associations_test.rb +++ b/activerecord/test/cases/associations/belongs_to_associations_test.rb @@ -831,3 +831,39 @@ class BelongsToAssociationsTest < ActiveRecord::TestCase assert_equal post.author_id, author2.id end end + +class BelongsToWithForeignKeyTest < ActiveRecord::TestCase + def setup + ActiveRecord::Schema.define do + drop_table :authors, if_exists: true + drop_table :author_addresses, if_exists: true + + create_table :author_addresses do |t| + end + + exec_query <<-eos + create table authors( + id int, + author_address_id int, + name varchar(255), + PRIMARY KEY (id), + FOREIGN KEY (author_address_id) REFERENCES author_addresses(id) + ); + eos + end + end + + def teardown + ActiveRecord::Schema.define do + drop_table :authors, if_exists: true + drop_table :author_addresses, if_exists: true + end + end + + def test_destroy_linked_models + address = AuthorAddress.create! + author = Author.create! id: 1, name: "Author", author_address_id: address.id + + author.destroy! + end +end -- cgit v1.2.3