我想为每个设备创建一个联系人。此时这两个模型是独立的,但我创建了一对一的依赖。让我们介绍一下背景:
给出设备型号:
class Device
# some ommited code
belongs_to :contact, autosave: true, index: true
end
并给出了一个使用alize的Contact模型:
class Contact
# some ommited code
has_one :device
alize :device, :app_id, :type
end
我创建了一个在联系人和设备模型中执行批量插入的任务。
device = Device.find("xxxxxxa2")
contact = device.contact
device.destroy
此处的问题是device.destroy
会自动删除联系人文档中创建的device_fields
,我想保留此信息。
如何暂时避免此after/before_destroy
回调?
答案 0 :(得分:0)
mongoid_alize
gem会在受影响的模型类中自动创建回调方法。
device.destroy
会在名为Device
的{{1}}模型中调用回调。
我的解决方案是在调用任务之前覆盖此方法:
denormalize_destroy_to_contact