Re: Re: Aggregating two objects of the same type

customer to addresses where an address type is used to denote the
:class_name => “Address”
end

Thanks for the response. While this option would certainly work, I
was hoping to avoid it for two reasons:

  1. Conceptually, the address belongs to the customer. I understand
    that the belongs_to in this situation gets the keys right, but it
    doesn’t really express the domain.
  2. I would like to avoid having the keys in the addresses table as I
    can forsee similar relationships to other objects than customers.

The other two options I have been considering are:

  1. has_and_belongs_to_many with join models
  2. Polymorphic associations.

Both seem complicated as a solution. It seems like it would be so
much cleaner if the key for one-to-one relationship were in the parent
and not the child.

Thanks,
Dan

Dan M. wrote:

that the belongs_to in this situation gets the keys right, but it
doesn’t really express the domain.
If you’re not comfortable with the semantics, you can do:

class Customer < ActiveRecord::Base
alias_method :refers_to, :belongs_to
end

and use refers_to (or

  1. I would like to avoid having the keys in the addresses table as I
    can forsee similar relationships to other objects than customers.
    Sorry, I should have made that clear - the key is in the customers table
    with belongs_to.

The other two options I have been considering are:

  1. has_and_belongs_to_many with join models 2. Polymorphic
    associations.

Both seem complicated as a solution. It seems like it would be so
much cleaner if the key for one-to-one relationship were in the
parent and not the child.
It is. From the docs: