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