如何避免 mongoid_alize 回调?
How to avoid a mongoid_alize callback?
我想为每个设备创建一个联系人。目前这两个模型是独立的,但我正在创建一对一的依赖关系。先介绍一下上下文:
给定设备型号:
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
回调?
mongoid_alize
gem 在受影响的模型中自动创建回调方法 类.
device.destroy
将在名称为 denormalize_destroy_to_contact
.
的 Device
模型中调用回调
我的解决方案是在调用任务之前覆盖此方法:
class Device
def denormalize_destroy_to_contact
nil
end
end
device = Device.find("xxxxxxa2")
contact = device.contact
device.destroy
我想为每个设备创建一个联系人。目前这两个模型是独立的,但我正在创建一对一的依赖关系。先介绍一下上下文:
给定设备型号:
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
回调?
mongoid_alize
gem 在受影响的模型中自动创建回调方法 类.
device.destroy
将在名称为 denormalize_destroy_to_contact
.
Device
模型中调用回调
我的解决方案是在调用任务之前覆盖此方法:
class Device
def denormalize_destroy_to_contact
nil
end
end
device = Device.find("xxxxxxa2")
contact = device.contact
device.destroy