我有一个名为Procedure
的模型,该模型必须由一个用户拥有并分配给另一个用户。我只有一个表User,其作用是区分用户。
因此,过程有2个对表User的引用。
我找到并实施了此解决方案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
?
答案 0 :(得分:2)
表过程是否需要同时拥有owner_id和 Assignee_id,或者只是一个字段user_id
您应该在owner_id
表中同时拥有assignee_id
和procedures
而不是user_id
,以便您可以致电
@user.owned_procedures
@user.assigned_procedures
获取owned_procedures
的实例assigned_procedures
的{{1}}和@user
。要获取过程的User
和owner
,请调用
assignee