diff options
author | Andrew White <andyw@pixeltrix.co.uk> | 2011-06-01 01:05:17 +0100 |
---|---|---|
committer | Andrew White <andyw@pixeltrix.co.uk> | 2011-06-01 01:16:20 +0100 |
commit | cf3364a03c665374f6419a8875474ebf8623ea67 (patch) | |
tree | 29d501af200663c0367df2c3754f3bacebbd2079 /activerecord | |
parent | eb7ef2ccd618bc87451b980722ec73ee41c203a1 (diff) | |
download | rails-cf3364a03c665374f6419a8875474ebf8623ea67.tar.gz rails-cf3364a03c665374f6419a8875474ebf8623ea67.tar.bz2 rails-cf3364a03c665374f6419a8875474ebf8623ea67.zip |
Raise NameError instead of ArgumentError in ActiveSupport::Dependencies
ActiveSupport::Dependencies now raises NameError if it finds an existing
constant in load_missing_constant. This better reflects the nature of
the error which is usually caused by calling constantize on a nested constant.
Closes #1423
Diffstat (limited to 'activerecord')
-rw-r--r-- | activerecord/lib/active_record/base.rb | 1 | ||||
-rw-r--r-- | activerecord/test/cases/base_test.rb | 7 |
2 files changed, 7 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/base.rb b/activerecord/lib/active_record/base.rb index f74810720d..08cc282d09 100644 --- a/activerecord/lib/active_record/base.rb +++ b/activerecord/lib/active_record/base.rb @@ -1308,7 +1308,6 @@ MSG rescue NameError => e # We don't want to swallow NoMethodError < NameError errors raise e unless e.instance_of?(NameError) - rescue ArgumentError end end diff --git a/activerecord/test/cases/base_test.rb b/activerecord/test/cases/base_test.rb index 39043447fc..2224097f04 100644 --- a/activerecord/test/cases/base_test.rb +++ b/activerecord/test/cases/base_test.rb @@ -1766,6 +1766,13 @@ class BasicsTest < ActiveRecord::TestCase end end + def test_compute_type_argument_error + ActiveSupport::Dependencies.stubs(:constantize).raises(ArgumentError) + assert_raises ArgumentError do + ActiveRecord::Base.send :compute_type, 'InvalidModel' + end + end + def test_clear_cache! # preheat cache c1 = Post.columns |