【问题标题】:How is nested embeds_many handled with mongoid in the following situation?在以下情况下,嵌套的 embeds_many 如何使用 mongoid 处理?
【发布时间】:2020-07-14 13:22:43
【问题描述】:

例如我有三个模型,即模型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)创建所有三个模型。我如何在 mongoid 中做到这一点?在活动记录中,只需声明 Accepts_nested_attributes_for 即可。

【问题讨论】:

标签: ruby-on-rails ruby mongoid


【解决方案1】:

首先,包含 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')

【讨论】:

    猜你喜欢
    • 2012-01-16
    • 2017-04-30
    • 1970-01-01
    • 1970-01-01
    • 2017-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-02
    相关资源
    最近更新 更多