diff options
author | Piotr Sarnacki <drogus@gmail.com> | 2012-01-12 20:32:11 +0100 |
---|---|---|
committer | Piotr Sarnacki <drogus@gmail.com> | 2012-01-12 20:39:12 +0100 |
commit | 6951014c05fa64f533072d21dc7e4c55f59162d4 (patch) | |
tree | c0bfb58e9273544f333f9d4818389f5c187c53a5 /activerecord/test/cases | |
parent | 84d633a0b3e74ded1daae58a10508122c2a57879 (diff) | |
download | rails-6951014c05fa64f533072d21dc7e4c55f59162d4.tar.gz rails-6951014c05fa64f533072d21dc7e4c55f59162d4.tar.bz2 rails-6951014c05fa64f533072d21dc7e4c55f59162d4.zip |
Fix table_name in ActiveRecord with more than one abstract ancestors
When subclassing abstract_class table_name should be always computed
based on class name, no matter if superclass is subclassing base
or another abstract_class. So:
class FirstAbstract < ActiveRecord::Base
self.abstract_class = true
end
class SecondAbstract < FirstAbstract
self.abstract_class = true
end
class Post < SecondAbstract
self.table_name #=> 'posts' (not 'second_abstracts')
end
Diffstat (limited to 'activerecord/test/cases')
-rw-r--r-- | activerecord/test/cases/base_test.rb | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/activerecord/test/cases/base_test.rb b/activerecord/test/cases/base_test.rb index 80a660717e..f5c139e85f 100644 --- a/activerecord/test/cases/base_test.rb +++ b/activerecord/test/cases/base_test.rb @@ -28,6 +28,13 @@ require 'rexml/document' require 'active_support/core_ext/exception' require 'bcrypt' +class FirstAbstractClass < ActiveRecord::Base + self.abstract_class = true +end +class SecondAbstractClass < FirstAbstractClass + self.abstract_class = true +end +class Photo < SecondAbstractClass; end class Category < ActiveRecord::Base; end class Categorization < ActiveRecord::Base; end class Smarts < ActiveRecord::Base; end @@ -1904,4 +1911,8 @@ class BasicsTest < ActiveRecord::TestCase assert_equal Teapot, OtherTeapot.active_record_super assert_equal ActiveRecord::Model, CoolTeapot.active_record_super end + + def test_table_name_with_2_abstract_subclasses + assert_equal "photos", Photo.table_name + end end |