модель рельсов с несколькими связанными адресами - PullRequest
0 голосов
/ 01 декабря 2018

У меня есть следующие модели рельсов:

# Address Model
address_line_1
address_line_2
address_line_3
post_code
country

# Vendor model
name
registered_address_id
billing_address_id
display_address_id

зарегистрированные_адрес, адрес_биллинга и адрес_отображения должны ссылаться на адрес в таблице адресов.

, поэтому в конечном итоге я смогу сделать Vendor.registered_address и т. Д.

Я не понимаю, как поступить с миграциями и моими отношениями с моей моделью. Может ли кто-нибудь указать мне правильное направление?

Большое спасибо

1 Ответ

0 голосов
/ 02 декабря 2018

Вы можете сделать это явно class_name на belongs_to и has_many и foreign_key на has_many

class Vendor < ApplicationModel
  belongs_to :registered_address, class_name: 'Address'
  belongs_to :billing_address, class_name: 'Address'
  belongs_to :display_address, class_name: 'Address'
end

class Address < ApplicationModel
  has_many :registered_addresses, foreign_key: :registered_address_id, class_name: 'Vendor'
  has_many :billing_addresses, foreign_key: :billing_address_id, class_name: 'Vendor'
  has_many :display_addresses, foreign_key: :billing_address_id, class_name: 'Vendor'
end

Ссылки: -

has_many

принадлежит_

Запрос =>

vendor_object.registered_address
vendor_object.billing_address
vendor_object.display_address
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...