gpt4 book ai didi

ruby-on-rails - Rails 是否有可能有一个模型可以包含两种类型的模型 : Tree of multiple models

转载 作者:行者123 更新时间:2023-12-03 12:19:17 25 4
gpt4 key购买 nike

基本上我想有以下结构:

class Group < ActiveRecord::Base

end

class Person < ActiveRecord::Base

end

Group_1 (parent)
Group_2 (child)
Person_1 (grandchild)
Person_2 (grandchild)
Person_3 (child)
Group_3 (child)
Person_4 (grandchild)
Group_4 (grandchild)
Person_5 (great grandchild)

我通过尝试以下 gem 进行了研究:acts_as_tree、ancestry、nested_sets 和 closure_tree。

他们能够养一棵树,这是我面临的挑战的一半;但是他们无法向树结构中添加另一个模型,因为他们总是希望 children 是同一个模型。 [例如:ActiveRecord::AssociationTypeMismatch: Group (#2179078840) expected, got Person(#2171128160) from closure_tree gem]

无论如何,是否有可能让上面定义的结构与树中的两个不同模型一起工作?

最佳答案

您可以定义将用于“树节点”的模型。每个节点都可以有一个 bool 字段,指示它是否是叶子,另一个字段(或多个字段)指向该节点“持有”的组/人。 (如果你只使用一个字段指向组/人,那么你可以使用多态关联,或者你可以编写一个自定义 SQL 查询,根据“叶”字段。)

关于ruby-on-rails - Rails 是否有可能有一个模型可以包含两种类型的模型 : Tree of multiple models,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12941204/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com