: 1 has_one has_one has_one belongs_to 1 : 1 has_one, :through has_one, :through has_one, :through belongs_to 1 : n has_many has_many has_many belongs_to n : m A has_many has_many belongs_to n : m A has_many B, :through has_many B, :through belongs_to n : m B has_many has_many belongs_to n : m B has_many A, :through has_many A, :through belongs_to n : m A / B A / B has_and_belongs_to_many has_and_belongs_to_many C