当前位置:  开发笔记 > 数据库 > 正文

Mongoid:嵌入式文档在父级构造时自动初始化

如何解决《Mongoid:嵌入式文档在父级构造时自动初始化》经验,为你挑选了2个好方法。

有没有办法让嵌入式文档在mongoid中自动初始化?我的意思是给用户嵌入车库文件.我必须编写以下代码来完全设置带有车库的用户:

user = User.create!(name: "John")
user.build_garage
user.garage.cars << Car.create!(name: "Bessy")

有没有办法可以跳过电话user.build_garage

谢谢



1> 小智..:

Mongoid 3有一个autobuild选项,告诉Mongoid在访问关系时实例化一个新文档nil.

embeds_one :label, autobuild: true
has_one :producer, autobuild: true



2> moritz..:

您可以像这样向User模型添加回调:

class User
  ...
  after_initialize do |u|
    u.build_garage unless u.garage
  end
  ...
end

这个回调在每次实例化类之后触发,因此它在'find'和'new'之后触发.

推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有