在同一张表中使用多个外键

娘娘腔

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

因此,一个过程有2个对表User的引用。

我在这里找到并实现了此解决方案因此在我的过程模型中

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

帕万

表过程需要同时具有owner_id和Assignee_id字段,还是仅具有user_id字段

您应该表中同时使用owner_idassignee_idprocedures而不是user_id这样,以便可以调用

@user.owned_procedures
@user.assigned_procedures

获得owned_procedures和的assigned_procedures@user这是的一个实例User并获取ownerassignee的过程,请致电

@procedure.owner
@procedure.assignee

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章