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