Active Record Associations
This is the root class of all associations (’+ Foo’ signifies an included module Foo):
  Association
    SingularAssociation
      HasOneAssociation
        HasOneThroughAssociation + ThroughAssociation
      BelongsToAssociation
        BelongsToPolymorphicAssociation
    CollectionAssociation
      HasAndBelongsToManyAssociation
      HasManyAssociation
        HasManyThroughAssociation + ThroughAssociation