【问题标题】:Is there anyway to create children that have multiple parent from a model using tree Rails无论如何使用树Rails从模型创建具有多个父级的子级
【发布时间】:2017-12-30 06:52:45
【问题描述】:

目前,我已经创建了一个组织结构,但它的一些“孩子”需要多个父母。这是我目前的祖先,我已将其实施到 OrgChart

我的目标与此类似:

我使用过祖先 gem,但我有点困惑如何使用该 gem 创建多个父级。我非常感谢任何建议或建议

【问题讨论】:

    标签: javascript ruby-on-rails ancestry


    【解决方案1】:

    使用外键parent_id存储节点A的ancestrygem与节点B有什么样的关系,所以parent_id只能存储1个值

    话虽如此,你不能直接让一个节点有多个父节点。

    但是,回到您要实现的数据结构,定义似乎并不明确。如果我从您的图表中正确理解,它是:

    • 有几组人,假设A组和B组
    • A 组有多个用户:WAKIL、KOORDINATOR、BAGIAN
    • B 组有多个用户:PEM、INTELE、PIDANA、...
    • A 组与 B 组有父子关系

    在这种情况下,您的实际树应该只显示组之间的关系

    Group X
    ↓
    Group Y
    ↓
    Group A
    ↓
    Group B
    

    组 B 中的用户定义有来自组 A 的多个父母将变为

    Group A has_many: users
    Group B has_many: users
    

    所以从现在开始,你的模型会变成

    # app/models/user.rb
    class User < < ActiveRecord::Base
      belongs_to :group
    end
    
    # app/models/group.rb
    class Group < ActiveRecord::Base
      has_ancestry
      has_many :users
    end
    

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-12
      • 1970-01-01
      • 2015-12-20
      相关资源
      最近更新 更多