无论如何,是否可以使用树 Rails 从模型中创建具有多个父项的子项

Is there anyway to create children that have multiple parent from a model using tree Rails

目前,我已经创建了一个组织结构,但其中一些 'children' 需要多个父级。这是我目前的祖先,我已经将它实现到 OrgChart

我的目标和这个类似:

我使用了祖先 gem ,但我有点困惑如何使用 gem 创建多个父级。我真的很感激任何意见或建议

ancestrygem使用外键parent_id存储节点A与节点B有什么样的关系,因此[=14=中只能存储1个值]

也就是说,你不能让一个节点直接有多个parents。

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

  • 有一些人,假设A组和B组
  • A组有多个用户:WAKIL、KOORDINATOR、BAGIAN
  • B 组有多个用户:PEM、INTELE、PIDANA、...
  • A 组与 B 组有关系 parent-children

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

Group X
↓
Group Y
↓
Group A
↓
Group B

而B组用户的定义有多个parents来自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

希望对您有所帮助。