diff options
-rw-r--r-- | activerecord/lib/active_record/base.rb | 2 | ||||
-rw-r--r-- | activerecord/test/cases/base_test.rb | 22 |
2 files changed, 23 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/base.rb b/activerecord/lib/active_record/base.rb index d1d3888de2..40fa010558 100644 --- a/activerecord/lib/active_record/base.rb +++ b/activerecord/lib/active_record/base.rb @@ -707,7 +707,7 @@ module ActiveRecord #:nodoc: if self == Base 'type' else - defined?(@inheritance_column) ? @inheritance_column : superclass.inheritance_column + (@inheritance_column ||= nil) || superclass.inheritance_column end end diff --git a/activerecord/test/cases/base_test.rb b/activerecord/test/cases/base_test.rb index 1ae5e6029f..9fc9197aa5 100644 --- a/activerecord/test/cases/base_test.rb +++ b/activerecord/test/cases/base_test.rb @@ -1510,6 +1510,28 @@ class BasicsTest < ActiveRecord::TestCase assert_equal "type_id", k.inheritance_column end + def test_set_sequence_name_with_value + k = Class.new( ActiveRecord::Base ) + k.sequence_name = "foo" + assert_equal "foo", k.sequence_name + + k.set_sequence_name "bar" + assert_equal "bar", k.sequence_name + end + + def test_set_sequence_name_with_block + k = Class.new( ActiveRecord::Base ) + k.table_name = "projects" + orig_name = k.sequence_name + + if orig_name + k.set_sequence_name { original_sequence_name + "_lol" } + assert_equal orig_name + "_lol", k.sequence_name + else + skip "sequences not supported by db" + end + end + def test_count_with_join res = Post.count_by_sql "SELECT COUNT(*) FROM posts LEFT JOIN comments ON posts.id=comments.post_id WHERE posts.#{QUOTED_TYPE} = 'Post'" |