最佳答案
我正在寻找从表中删除记录的最佳方法。例如,我有一个用户,其用户ID横跨多个表。我想删除这个用户和所有表中具有他的ID的每个记录。
u = User.find_by_name('JohnBoy')
u.usage_indexes.destroy_all
u.sources.destroy_all
u.user_stats.destroy_all
u.delete
这可以工作,并从所有表中删除用户的所有引用,但我听说destroy_all
是非常繁重的进程,所以我尝试了delete_all
。它只是从他自己的用户表中删除用户,而从所有其他表中删除id
则为空,但保留其中的记录完整。有人能分享一下执行这样的任务的正确流程吗?
我看到destroy_all
在所有关联对象上调用destroy
函数,但我只想确认正确的方法。