1
说我有两个型号:Mongoid:如何设置嵌入对象(embeds_one关系)没有坚持
class Person
include Mongoid::Document
embeds_one :address
end
class Address
include Mongoid::Document
embedded_in :person
end
我想设置一个创建person
的地址,而address
被保存到数据库。
person.address = Address.new # Automatically persists address to the database.
我的问题是基本相同this one,除了这是一个embeds_one
关系,所以build
方法不可用。我已经看到了动态创建build_<embedded_object>
方法,但它似乎并不接受相同的选项build
,即特定的类与构建嵌入式对象(这是相关类的子类):
person.posts.build({
name: "Another post"
}, SpecialPost)
# Works
person.build_address({
name: "An address"
}, SpecialAddress)
# Does not work
这个'person.address = Address.new'不会将地址保存到db,直到你调用'save'。对? –
如果'人'已经持续存在,是的,它确实存在。 – mlovic
所以,这意味着,如果您使用'person.address = Address.new'分配'address',然后执行'person.reload',则可以访问'person.address'? –