无论如何,是否可以使用树 Rails 从模型中创建具有多个父项的子项
Is there anyway to create children that have multiple parent from a model using tree Rails
目前,我已经创建了一个组织结构,但其中一些 'children' 需要多个父级。这是我目前的祖先,我已经将它实现到 OrgChart
我的目标和这个类似:
我使用了祖先 gem ,但我有点困惑如何使用 gem 创建多个父级。我真的很感激任何意见或建议
ancestry
gem使用外键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
希望对您有所帮助。
目前,我已经创建了一个组织结构,但其中一些 'children' 需要多个父级。这是我目前的祖先,我已经将它实现到 OrgChart
我的目标和这个类似:
我使用了祖先 gem ,但我有点困惑如何使用 gem 创建多个父级。我真的很感激任何意见或建议
ancestry
gem使用外键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
希望对您有所帮助。