在没有回调的情况下销毁

时间:2016-01-06 10:38:00

标签: ruby-on-rails

我想跳过特定destroy方法的回调。

@object.destroy //but no callbacks, like after_commit

我不是在寻找delete。因为delete只会删除对象。它不会照顾相关的子对象。因为destroy也会摧毁受抚养的孩子。

1 个答案:

答案 0 :(得分:0)

您有两种方法可以做到这一点:

  • 如果您只想执行此操作一次,则应通过数据库或控制台手动将其删除
  • 如果您希望将此行为视为永久性行为,则需要将foreign_keys更改为已在评论中建议的on_delete

例如:

def change add_foreign_key :childrentable, :object, on_delete: :cascade end

这会将您的ChildrenTable表foreign_key object_id更改为ON DELETE CASCADE