覆盖销毁但保留回调

overridey Destroy but keep callbacks

覆盖销毁方法的 ActiveRecod 模型实际上只是 "soft-delete" 对象。我们确实动态地创建了很多 before_filters,但是如果我们覆盖 destroy 方法,它们将不会被调用。

before_destroy {
  p "before_destroy"
}

def destroy
  soft_delete
end
  def destroy
    _run_destroy_callbacks do
      soft_delete
    end
  end