0
我正在编写一个为模型提供草稿的插件。删除操作是一项可设计的操作,我并不总是希望在删除发布前删除原点。所以我写了自己的破坏方法来帮助解决这个问题。一切正常,除了我想要的东西除外,:before_destroy
和:after_destroy
的自定义回调不再被触发。我的自定义销毁方法不会在销毁回调之前和之后触发默认值
如何任何想法:
- 重新绑定回调到我的破坏方法
- 工作一些alias_method_chain巫术
- 得到模型的列表回调,所以我可以给他们打电话手动
- 解决这个问题另一种方式
这里是我破坏方法:
def destroy
if self.attribute_names.include?('draft') && self.skip_draft == false
if handle_destroy # if true is returned
super # go ahead and destroy as normal
end
else
super
end
end
更新:我刚刚发现这个: correct way to override activerecordbasedestroy,但似乎所提出的技术不适应回调。有没有办法让我的蛋糕也吃了呢?