ruby-on-rails – Rails,删除子节点而不删除父节点:has_many
发布时间:2020-12-17 04:33:39 所属栏目:百科 来源:网络整理
导读:我有 class MyContainer ActiveRecord::Base :has_many MyObjects,:dependent = :destroyend 我想删除容器中的所有MyObjects而不必删除MyContainer.我的模型确实有:dependent = :destroy,但是我不想删除并重新创建对象,因为它比较慢. 这样的东西不起作用:
我有
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类方法.
你应该使用 @container = MyContainer.find_by_id(10) @container.my_objects.destroy_all 如果您不需要先查找MyContainer(或将其用于其他内容),那么正确使用delete_all会更快 MyObject.delete_all(["my_container_id = ?",10]) 编辑:对于rails 3 MyObject.where(my_container_id: 10).delete_all (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |