Method: ActiveRecord::Inheritance::ClassMethods#base_class
- Defined in:
- lib/active_record/inheritance.rb
#base_class ⇒ Object
Returns the class descending directly from ActiveRecord::Base, or an abstract class, if any, in the inheritance hierarchy.
If A extends AR::Base, A.base_class will return A. If B descends from A through some arbitrarily deep hierarchy, B.base_class will return A.
If B < A and C < B and if A is an abstract_class then both B.base_class and C.base_class would return B as the answer since A is an abstract_class.
62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/active_record/inheritance.rb', line 62 def base_class unless self < Base raise ActiveRecordError, "#{name} doesn't belong in a hierarchy descending from ActiveRecord" end if superclass == Base || superclass.abstract_class? self else superclass.base_class end end |