gpt4 book ai didi

ruby-on-rails - Rails,使用:has_many删除子级而不删除父级

转载 作者:行者123 更新时间:2023-12-04 05:34:27 25 4
gpt4 key购买 nike

我有

class MyContainer < ActiveRecord::Base
:has_many MyObjects, :dependent => :destroy
end

我想删除容器中的所有 MyObjects,而不必删除 MyContainer。我的模型确实有 :dependent => :destroy,但是我不想删除并重新创建对象,因为它比较慢。

这样的事情不起作用:
@obj = MyContainer.find_by_id(10)
@obj.my_objects.delete_all

我该怎么做?

最佳答案

delete_all ActiveRecord::Base类方法。

您应该使用 destroy_all 。就像是:

@container = MyContainer.find_by_id(10)
@container.my_objects.destroy_all

如果您不需要先查找 delete_all(或将其用于其他内容),则正确使用 MyContainer会更快。
MyObject.delete_all(["my_container_id = ?", 10])

编辑:对于rails 3
MyObject.where(my_container_id: 10).delete_all

关于ruby-on-rails - Rails,使用:has_many删除子级而不删除父级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2673211/

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