File tree Expand file tree Collapse file tree 6 files changed +11
-9
lines changed Expand file tree Collapse file tree 6 files changed +11
-9
lines changed Original file line number Diff line number Diff line change @@ -428,7 +428,7 @@ def compute_class(name)
428
428
rescue NameError
429
429
message = "Missing model class #{ name } for the #{ active_record } ##{ self . name } association."
430
430
message += " You can specify a different model class with the :class_name option." unless options [ :class_name ]
431
- raise ArgumentError , message
431
+ raise NameError , message
432
432
end
433
433
434
434
unless klass < ActiveRecord ::Base
Original file line number Diff line number Diff line change @@ -421,15 +421,15 @@ class ModelAssociatedToClassesThatDoNotExist < ActiveRecord::Base
421
421
end
422
422
423
423
def test_associations_raise_with_name_error_if_associated_to_classes_that_do_not_exist
424
- assert_raises ArgumentError do
424
+ assert_raises NameError do
425
425
ModelAssociatedToClassesThatDoNotExist . new . non_existent_has_one_class
426
426
end
427
427
428
- assert_raises ArgumentError do
428
+ assert_raises NameError do
429
429
ModelAssociatedToClassesThatDoNotExist . new . non_existent_belongs_to_class
430
430
end
431
431
432
- assert_raises ArgumentError do
432
+ assert_raises NameError do
433
433
ModelAssociatedToClassesThatDoNotExist . new . non_existent_has_many_classes
434
434
end
435
435
end
Original file line number Diff line number Diff line change 18
18
require "models/customer"
19
19
require "models/toy"
20
20
require "models/matey"
21
- require "models/dog_lover"
22
21
require "models/dog"
23
22
require "models/car"
24
23
require "models/tyre"
Original file line number Diff line number Diff line change 17
17
require "models/computer"
18
18
require "models/course"
19
19
require "models/developer"
20
- require "models/dog_lover"
21
20
require "models/dog"
22
21
require "models/doubloon"
23
22
require "models/essay"
Original file line number Diff line number Diff line change 2
2
3
3
require "cases/helper"
4
4
require "models/pirate"
5
- require "models/developer"
6
5
require "models/ship"
7
6
require "models/ship_part"
8
7
require "models/bird"
Original file line number Diff line number Diff line change @@ -139,7 +139,7 @@ def test_irregular_reflection_class_name
139
139
end
140
140
141
141
def test_reflection_klass_not_found_with_no_class_name_option
142
- error = assert_raise ( ArgumentError ) do
142
+ error = assert_raise ( NameError ) do
143
143
UserWithInvalidRelation . reflect_on_association ( :not_a_class ) . klass
144
144
end
145
145
@@ -150,7 +150,7 @@ def test_reflection_klass_not_found_with_no_class_name_option
150
150
end
151
151
152
152
def test_reflection_klass_not_found_with_pointer_to_non_existent_class_name
153
- error = assert_raise ( ArgumentError ) do
153
+ error = assert_raise ( NameError ) do
154
154
UserWithInvalidRelation . reflect_on_association ( :class_name_provided_not_a_class ) . klass
155
155
end
156
156
@@ -560,6 +560,11 @@ def test_reflect_on_association_accepts_strings
560
560
end
561
561
end
562
562
563
+ def test_automatic_inverse_suppresses_name_error_for_association
564
+ reflection = UserWithInvalidRelation . reflect_on_association ( :not_a_class )
565
+ assert_not reflection . dup . has_inverse? # dup to prevent global memoization
566
+ end
567
+
563
568
private
564
569
def assert_reflection ( klass , association , options )
565
570
assert reflection = klass . reflect_on_association ( association )
You can’t perform that action at this time.
0 commit comments