我正在寻找从表中删除记录的最佳方法.例如,我有一个用户,其用户ID跨越许多表.我想删除此用户以及在所有表中具有其ID的每个记录.
u = User.find_by_name('JohnBoy')
u.usage_indexes.destroy_all
u.sources.destroy_all
u.user_stats.destroy_all
u.delete
Run Code Online (Sandbox Code Playgroud)
这工作并从所有表中删除用户的所有引用,但我听说这destroy_all是非常重的过程,所以我尝试了delete_all.它只从用户自己的用户表中删除用户,并将id所有其他表中的用户设为null,但保留其中的记录.有人可以分享执行此类任务的正确流程吗?
我看到在所有相关对象上destroy_all调用该destroy函数,但我只是想确认正确的方法.