无论如何,使用树Rails创建具有多个父模型的子节点

问题描述 投票:2回答:1

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

https://user-images.githubusercontent.com/16495060/34451193-918b25ae-ed51-11e7-9955-7694b0e6573f.png

我的目标与此类似:

enter image description here

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

javascript ruby-on-rails ancestry
1个回答
2
投票

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

话虽这么说,你不能让一个节点有多个父母直接的方式。

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

  • 有一些人群,假设A组和B组
  • A组有多个用户:VICE,COORDINATOR,PART
  • 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

希望能帮助到你。

© www.soinside.com 2019 - 2024. All rights reserved.