gpt4 book ai didi

ruby-on-rails - 批量销毁 Rails 事件记录中的所有内容

转载 作者:行者123 更新时间:2023-12-03 21:24:52 26 4
gpt4 key购买 nike

我有大量的 Product 对象,它们都有一个关联的“变体”。我不能只是delete_all产品,因为我也需要删除关联。

当我使用 Products.all.destroy_all它卡住并且没有完成销毁所有产品,然后它迫使我取消它并回滚它。

这个问题有方法解决吗?

最佳答案

对于大量对象及其关联的“变体”,您必须使用 destroy_all。

Product.all.destroy_all

由于 destroy_all 实际上加载了整个关系,然后一个一个地迭代销毁记录,你可以很容易地破坏你的内存垫圈。所以让我们在默认情况下做正确的事情,默认情况下以 100 的批次进行这项工作,并允许您像这样指定批次大小: destroy_all(batch_size: 100).
Product.destroy_all(batch_size: 100)

或者

您可以使用 in_batches
Product.in_batches(of: 200).destroy_all

关于ruby-on-rails - 批量销毁 Rails 事件记录中的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48655004/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com