有没有办法让嵌入式文档在mongoid中自动初始化?我的意思是给用户嵌入车库文件.我必须编写以下代码来完全设置带有车库的用户:
user = User.create!(name: "John") user.build_garage user.garage.cars << Car.create!(name: "Bessy")
有没有办法可以跳过电话user.build_garage
?
谢谢
Mongoid 3有一个autobuild
选项,告诉Mongoid在访问关系时实例化一个新文档nil
.
embeds_one :label, autobuild: true has_one :producer, autobuild: true
您可以像这样向User模型添加回调:
class User ... after_initialize do |u| u.build_garage unless u.garage end ... end
这个回调在每次实例化类之后触发,因此它在'find'和'new'之后触发.