Как вложенный embeds_many обрабатывается с помощью mongoid в следующей ситуации? - PullRequest
0 голосов
/ 14 июля 2020

например, у меня есть три модели, то есть модель A, модель B и модель C

class ModelA
  embeds_many :modelBs
  accepts_nested_attributes_for :modelBs
end

class ModelB
  embedded_in :modelA
  embeds_many :modelCs
  accepts_nested_attributes_for :modelBs
end

class ModelC
  embedded_in :modelB
end

И я пытаюсь создать все три модели из одного контроллера, то есть ModelAcontroller. Как мне это сделать в монгоиде? В активной записи простое указание accept_nested_attributes_for выполняет свою работу.

1 Ответ

1 голос
/ 14 июля 2020

Сначала включите Mongoid :: Document

class ModelA
  include Mongoid::Document
  embeds_many :modelBs
end

class ModelB
  include Mongoid::Document
  embedded_in :modelA
  embeds_many :modelCs
end

class ModelC
  include Mongoid::Document
  embedded_in :modelB
end

Вы можете создавать вложенные модели следующим образом:

a_instance = ModelA.create(
                       modelBs: [ 
                            { modelCs: [{}]}                                    
                            ] 
                           ) 

a_instance.modelBs.first.modelCs.first._id # => BSON::ObjectId('5f0df5e063067000824541b5')
...