aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases/base_test.rb
diff options
context:
space:
mode:
authorPiotr Sarnacki <drogus@gmail.com>2012-01-12 20:32:11 +0100
committerPiotr Sarnacki <drogus@gmail.com>2012-01-12 20:39:12 +0100
commit6951014c05fa64f533072d21dc7e4c55f59162d4 (patch)
treec0bfb58e9273544f333f9d4818389f5c187c53a5 /activerecord/test/cases/base_test.rb
parent84d633a0b3e74ded1daae58a10508122c2a57879 (diff)
downloadrails-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/base_test.rb')
-rw-r--r--activerecord/test/cases/base_test.rb11
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