在同一个表中Rails多个外键

问题描述 投票:1回答:1

我有一个名为Procedure的模型,它必须由用户拥有并分配给另一个用户。我有一个表User,具有区分用户的角色。

所以一个过程有2个表用户的引用。

我找到并实现了这个解决方案here所以在我的程序模型中

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

在模型中用户我有这个

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

ruby-on-rails foreign-keys constraints ruby-on-rails-5
1个回答
2
投票

表过程是否需要包含字段owner_id和assignee_id,或者只包含字段user_id

你应该在owner_id表而不是assignee_idproceduresuser_id这样你就可以打电话

@user.owned_procedures
@user.assigned_procedures

得到一个owned_proceduresassigned_procedures@user,这是User的一个例子。要获得一个程序的ownerassignee,请致电

@procedure.owner
@procedure.assignee
© www.soinside.com 2019 - 2024. All rights reserved.