我有一个Product模型,它在Rails 4.2.3应用程序中。
Ahas_many有时可以有超过10000个producatributes。
我需要删除这些产品中的一些,但是当我在产品上调用ProductAttributes时,需要非常非常长的时间。它似乎从Product中获取一个id列表,然后分别对每个id调用delete。
但当它结束的时候,它就有点悬着。我有很多数据要删除,有时我需要这样做。
但我不能让这东西永远挂着。最后我不得不做一个destroy,然后我看到ProductAttribute发生了。
我的问题是,它到底在干什么?为什么我不能可靠地从应用层删除大量数据?

最佳答案

我怀疑你用了

has_many :product_attributes, dependent: :destroy

您可能希望研究如何使用dependent: :delete以便Rails在单独销毁所有依赖记录之前不会实例化它们。
documentation将有更多关于结果的信息(例如,如果对依赖模型执行回调等)

关于ruby-on-rails - 销毁一些记录需要非常长的时间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31597493/

10-16 21:45