mirror of
https://github.com/github/rails.git
synced 2026-01-09 14:48:01 -05:00
Don't reset inheritance_column when setting explicitly.
This is backported from master (cdfcbc4).
This commit is contained in:
@@ -173,6 +173,7 @@ module ActiveRecord
|
||||
def inheritance_column=(value)
|
||||
@original_inheritance_column = inheritance_column
|
||||
@inheritance_column = value.to_s
|
||||
@explicit_inheritance_column = true
|
||||
end
|
||||
|
||||
def set_inheritance_column(value = nil, &block) #:nodoc:
|
||||
@@ -300,7 +301,8 @@ module ActiveRecord
|
||||
connection.schema_cache.clear_table_cache!(table_name) if table_exists?
|
||||
|
||||
@column_names = @content_columns = @column_defaults = @columns = @columns_hash = nil
|
||||
@dynamic_methods_hash = @inheritance_column = nil
|
||||
@dynamic_methods_hash = nil
|
||||
@inheritance_column = nil unless defined?(@explicit_inheritance_column) && @explicit_inheritance_column
|
||||
@arel_engine = @relation = nil
|
||||
end
|
||||
|
||||
|
||||
@@ -1540,6 +1540,16 @@ class BasicsTest < ActiveRecord::TestCase
|
||||
end
|
||||
end
|
||||
|
||||
def test_dont_clear_inheritnce_column_when_setting_explicitly
|
||||
Joke.inheritance_column = "my_type"
|
||||
before_inherit = Joke.inheritance_column
|
||||
|
||||
Joke.reset_column_information
|
||||
after_inherit = Joke.inheritance_column
|
||||
|
||||
assert_equal before_inherit, after_inherit unless before_inherit.blank? && after_inherit.blank?
|
||||
end
|
||||
|
||||
def test_set_table_name_symbol_converted_to_string
|
||||
Joke.table_name = :cold_jokes
|
||||
assert_equal 'cold_jokes', Joke.table_name
|
||||
|
||||
Reference in New Issue
Block a user