代码之家  ›  专栏  ›  技术社区  ›  sissy

在同一个表中Rails多个外键

  •  1
  • sissy  · 技术社区  · 7 年前

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

    因此,一个过程有两个对表用户的引用。

    我发现并实现了这个解决方案 here

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

    在model User中我有这个

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

    但我无法理解这在物理上应该如何实现,我的意思是在表级别: does表格 procedures 需要两个字段 owner_id and assignee_id ,或只是一个领域 user_id ?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Pavan Cesar    7 年前

    表过程是否需要同时具有字段所有者id和 或者只是一个字段用户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