Zgłupiałem - Customer i kilka różnych Address

Mam model Address - który przechowuje adres
Mam model Customer, który to ma adres zameldowania, adres do korespondencji.
Jak to zamodelować, żeby była jedna klasa Address a klient miał registered_address i address_for_correspondence

Zgłupiałem, przyznaję się :smiley:

Ok, wstałem - przeszedłem się i mam. Dla potomnych

class Customer < ApplicationRecord
  belongs_to :registered_address, class_name: 'Address'
  belongs_to :address_for_correspondence, class_name: 'Address'
end

class Address < ApplicationRecord
  has_one :registered_address, class_name: "Customer", foreign_key: "registered_address_id"
  has_one :address_for_correspondence, class_name: "Customer", foreign_key: "address_for_correspondence_id"
end

Wydaje mi się, że można zastosować tutaj STI (Single Table Inheritance).
Coś jak:

class Customer < ApplicationRecord
  has_one :registered_address, class_name: 'RegisteredAddress'
  has_one :correspondence_address, class_name: 'CorrespondenceAddress'
end

class Address < ApplicationRecord
  belongs_to :customer
end

class RegisteredAddress < Address
  # code for this class ex. validation
end

class CorrespondenceAddress < Address
  # code for this class ex. validation
end

A to nie jest tak ze Customer ma Address a nie Address ma Customera? Odwrociles relacje w swoim przykladzie.