То, что вы пытаетесь сделать, звучит разумно, но Mongoid не позволит вам связать класс, который может быть внедрен с другим классом через ассоциацию. Когда я попробовал, я получил исключение в этом файле (строка 218) при добавлении (верхнего уровня) компонента в учреждение.
Самый простой вариант для вас - встроить компонент в учреждение, например,
class Institution
include Mongoid::Document
embeds_many :components
end
В противном случае, если вы хотите поделиться деревьями Компонентов с различными Учреждениями, я думаю, вам нужно будет ввести в модель какой-то контейнерный объект и определить ассоциацию «многие-многие» с Учреждением, например ::1008*
class Component
include Mongoid::Document
include Mongoid::Versioning
recursively_embeds_many
end
class ComponentTree
include Mongoid::Document
embeds_many :components
has_and_belongs_to_many :institutions
end
class Institution
include Mongoid::Document
has_and_belongs_to_many :component_trees
end