保存嵌入文档mongoid
我有一个embeds_many
地址的人模型。保存嵌入文档mongoid
有没有办法在更新时总是清除嵌入关系?例如,如果我发送一个人的完整表示,包括地址,我想替换现有地址而不是附加地址。
我的临时解决方法是一个before_save
回调其清除掉所有的地址
class Person
include Mongoid::Document
embeds_many :addresses
before_save :clear_addresses!
def clear_addresses!
self.unset(:addresses)
end
end
当你更新你的人,你可以传递一个空addresses
PARAMS
person.update_attributes(:addresses => [])
是的,我确定可以。但我想要做的就是每次清理一次。如果地址通过,这些应该覆盖已经存在的地址。 – 2012-04-07 13:35:16
我真的不明白目的:( – shingara 2012-04-08 19:35:54
)除非将它发送到服务器,否则我的当前设置地址应该被清除。因此,不传递任何地址应该清除现有的地址。 – 2012-04-09 14:12:46
如果你这样做,为什么有一个embeds_many地址?因为你从来没有将这个地址与你的人联系在一起...... – shingara 2012-04-06 07:33:47