From 839efc5b6d754697682d5b2bd34ef28b2c5d2adf Mon Sep 17 00:00:00 2001 From: chapmajs Date: Tue, 30 Apr 2013 23:11:49 -0300 Subject: Allow global override of default STI inheritance column This change fixes a bug by which 3.2-STABLE users can't globally override the default STI inheritance column with `ActiveRecord::Base.inheritance_column = 'some_column'`. 3.2-STABLE users are forced to use a deprecated method or monkey patch it otherwise. Test case written by tkhr . --- activerecord/test/cases/inheritance_test.rb | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'activerecord/test/cases/inheritance_test.rb') diff --git a/activerecord/test/cases/inheritance_test.rb b/activerecord/test/cases/inheritance_test.rb index 54c9152c06..99a252a389 100644 --- a/activerecord/test/cases/inheritance_test.rb +++ b/activerecord/test/cases/inheritance_test.rb @@ -290,3 +290,26 @@ class InheritanceComputeTypeTest < ActiveRecord::TestCase ActiveRecord::Base.store_full_sti_class = true end end + + +class GlobalInheritanceColumnTest < ActiveRecord::TestCase + fixtures :companies + + setup do + @inheritance_column = ActiveRecord::Base.inheritance_column + end + + teardown do + ActiveRecord::Base.inheritance_column = @inheritance_column + end + + def test_changing_global_inheritance_column + ActiveRecord::Base.inheritance_column = 'ruby_type' + + firm = Firm.create('name' => 'FirmWithAltInheritanceColumn') + assert_equal 'Firm', firm.ruby_type + + assert_equal 'ruby_type', Company.inheritance_column + assert_equal 'ruby_type', Firm.inheritance_column + end +end -- cgit v1.2.3