Rails несколько внешних ключей в одной таблице - PullRequest
0 голосов
/ 13 сентября 2018

У меня есть модель, названная Procedure, которая должна принадлежать пользователю и назначаться другому пользователю.У меня есть одна таблица User с ролями для различения пользователей.

Таким образом, процедура имеет 2 ссылки на таблицу User.

Я нашел и реализовал это решение здесь , поэтому в моей модели процедуры у меня есть

belongs_to :owner, class_name: "User", foreign_key: "owner_id"
belongs_to :assignee, class_name: "User", foreign_key: "assignee_id"

, а в модели User у меня есть это

has_many :owned_procedures, class_name: "Procedure", foreign_key: "owner_id"
has_many :assigned_procedures, class_name: "Procedure", foreign_key: "assignee_id"

но я не могу понять, как это физически должно быть реализовано, я имею в виду на уровне таблицы: в таблице procedures должны быть оба поля owner_id and assignee_id или просто поле user_id?

1 Ответ

0 голосов
/ 13 сентября 2018

Должны ли табличные процедуры иметь оба поля owner_id и assignee_id или просто поле user_id

Вы должны иметь owner_id и assignee_id в таблице procedures вместо user_id, чтобы вы могли звонить

@user.owned_procedures
@user.assigned_procedures

для получения owned_procedures и assigned_procedures для @user, который является экземпляром User. И чтобы получить owner и assignee процедуры, вызовите

@procedure.owner
@procedure.assignee
...