SQL отношения в Rails.Попытка создать две разные ссылки для одной табличной взаимосвязи.Очень запутанная ситуация - PullRequest
0 голосов
/ 26 августа 2018

У меня есть схема БД, в которой отгрузка belongs_to для двух пользователей, даже если связь между моделью и моделью.
Отгрузка может иметь receiver_id и sender_id.И получатель, и отправитель - это две разные записи в одной и той же таблице (модель пользователя).

Мне было интересно, как я могу установить связь в своем бэкэнде рельсов для отправки в принадлежность_ к записи, где пользователь являетсяотправитель, а также другая запись в той же базе данных , где пользователь является получателем.
Я долго думал, как это сделать, и очень трудно найти решение.Единственное решение, которое у меня есть, - уничтожить существующую модель User и создать две разные модели: получатель и отправитель.Или есть другое решение для этого?Я приложил свою схему БД в этой теме.

Любая помощь будет высоко ценится.Заранее спасибо!

Схема БД

1 Ответ

0 голосов
/ 26 августа 2018
class Shipment < ApplicationRecord
  belongs_to :sender, :class_name => "User"
  belongs_to :recipient, :class_name => "User"
end

class User < ApplicationRecord
  has_many :sent_shipments, :class_name => "Shipment", foreign_key: 'sender_id'
  has_many :received_shipments, :class_name => "Shipment", foreign_key: 'recipient_id'
end
...