Method: ActiveRecord::Reflection::AssociationReflection#compute_class
- Defined in:
- lib/active_record/reflection.rb
#compute_class(name) ⇒ Object
:nodoc:
490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 |
# File 'lib/active_record/reflection.rb', line 490 def compute_class(name) if polymorphic? raise ArgumentError, "Polymorphic associations do not support computing the class." end begin klass = active_record.send(:compute_type, name) rescue NameError => error if error.name.match?(/(?:\A|::)#{name}\z/) = "Missing model class #{name} for the #{active_record}##{self.name} association." += " You can specify a different model class with the :class_name option." unless [:class_name] raise NameError.new(, name) else raise end end unless klass < ActiveRecord::Base raise ArgumentError, "The #{name} model class for the #{active_record}##{self.name} association is not an ActiveRecord::Base subclass." end klass end |