diff options
author | Godfrey Chan <godfreykfc@gmail.com> | 2014-03-11 07:25:36 -0700 |
---|---|---|
committer | Godfrey Chan <godfreykfc@gmail.com> | 2014-03-11 07:25:36 -0700 |
commit | ccaf0ed791d69567f91a659c9efc7d3bb5bc8b3b (patch) | |
tree | e7822c7234bf04a8157130937995f43d56a24e4f /activerecord/test/cases | |
parent | 6868265fe36e280e0b1ce96f3d378d0e0e14dc90 (diff) | |
parent | e5f15a83656f6d005dab40a30fb9f7fa2cf65d77 (diff) | |
download | rails-ccaf0ed791d69567f91a659c9efc7d3bb5bc8b3b.tar.gz rails-ccaf0ed791d69567f91a659c9efc7d3bb5bc8b3b.tar.bz2 rails-ccaf0ed791d69567f91a659c9efc7d3bb5bc8b3b.zip |
Merge pull request #14345 from arthurnn/revert_14052
Fixes STI when 2+ levels deep.
Diffstat (limited to 'activerecord/test/cases')
-rw-r--r-- | activerecord/test/cases/attribute_methods_test.rb | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/activerecord/test/cases/attribute_methods_test.rb b/activerecord/test/cases/attribute_methods_test.rb index 1a1e442df0..173081cb28 100644 --- a/activerecord/test/cases/attribute_methods_test.rb +++ b/activerecord/test/cases/attribute_methods_test.rb @@ -746,6 +746,19 @@ class AttributeMethodsTest < ActiveRecord::TestCase assert "unknown attribute: hello", error.message end + def test_methods_override_in_multi_level_subclass + klass = Class.new(Developer) do + def name + "dev:#{read_attribute(:name)}" + end + end + + 2.times { klass = Class.new klass } + dev = klass.new(name: 'arthurnn') + dev.save! + assert_equal 'dev:arthurnn', dev.reload.name + end + def test_global_methods_are_overwritten klass = Class.new(ActiveRecord::Base) do self.table_name = 'computers' |