我正在使用mongoid-tree,但此问题可能适用于其他acts_as_tree ports for Mongoid。
我想要一个节点树,我希望整个树嵌入另一个文档中。我的问题是,这实际上只需要嵌入根节点,但所有节点都具有相同的embedded_in。就我而言:
class Container
include Mongoid::Document
embeds_one :root, :class_name => "Node"
end
class Node
include Mongoid::Document
include Mongoid::Tree
embedded_in :container, :inverse_of => :root
end
如何设置它以便每个树只嵌入一个记录_在容器中?还有另一种方法会更好吗?
答案 0 :(得分:0)
mongoid-tree的作者benedikt在GitHub上回答。
目前,Mongoid :: Tree不适用于嵌入式节点。他建议:
class Container
include Mongoid::Document
referenced_in :node, :inverse_of => :container
end
class Node
include Mongoid::Document
include Mongoid::Tree
references_one :container
end
这样您就可以将任何节点分配给容器。您还可以覆盖Node.container方法以调用子节点的root.container,这样您也可以获得子节点的容器。