aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2011-08-24 16:05:24 -0700
committerAaron Patterson <aaron.patterson@gmail.com>2011-08-24 16:05:24 -0700
commit5345958b3a39b8675edb7fb27b4adee250d930f7 (patch)
tree742b7ba5742ef1427299c4a878d24950f3822789 /activerecord
parent0a2b105621383eafe09ed89ea7564da1c84057b1 (diff)
parent0a0da9d554490f01fe57d69fe8d98f29b02be3e5 (diff)
downloadrails-5345958b3a39b8675edb7fb27b4adee250d930f7.tar.gz
rails-5345958b3a39b8675edb7fb27b4adee250d930f7.tar.bz2
rails-5345958b3a39b8675edb7fb27b4adee250d930f7.zip
Merge pull request #2679 from amatsuda/nullify_abstract_class_table_name
do not compute table names for abstract classes
Diffstat (limited to 'activerecord')
-rw-r--r--activerecord/lib/active_record/base.rb2
-rw-r--r--activerecord/test/cases/base_test.rb4
2 files changed, 6 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/base.rb b/activerecord/lib/active_record/base.rb
index c76f98d6a0..03aea81d2c 100644
--- a/activerecord/lib/active_record/base.rb
+++ b/activerecord/lib/active_record/base.rb
@@ -624,6 +624,8 @@ module ActiveRecord #:nodoc:
# Computes the table name, (re)sets it internally, and returns it.
def reset_table_name #:nodoc:
+ return if abstract_class?
+
self.table_name = compute_table_name
end
diff --git a/activerecord/test/cases/base_test.rb b/activerecord/test/cases/base_test.rb
index fe46c00b47..bee183cc67 100644
--- a/activerecord/test/cases/base_test.rb
+++ b/activerecord/test/cases/base_test.rb
@@ -1625,6 +1625,10 @@ class BasicsTest < ActiveRecord::TestCase
assert !LooseDescendant.abstract_class?
end
+ def test_abstract_class_table_name
+ assert_nil AbstractCompany.table_name
+ end
+
def test_base_class
assert_equal LoosePerson, LoosePerson.base_class
assert_equal LooseDescendant, LooseDescendant.base_class