我正在寻找从表中删除记录的最佳方法。例如,我有一个用户,其用户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
函数,但我只想确认正确的方法。
delete_all
,并且2)destroy_all
实例化所有记录并一次销毁一条记录,因此对于非常大的数据集,这可能会非常缓慢。