我有
@H_301_2@class MyContainer < ActiveRecord::Base
:has_many MyObjects,:dependent => :destroy
end
我想删除容器中的所有MyObjects而不必删除MyContainer.我的模型确实有:dependent => :destroy,但是我不想删除并重新创建对象,因为它比较慢.
这样的东西不起作用:
@H_301_2@@obj = MyContainer.find_by_id(10) @obj.my_objects.delete_all我怎么能做到这一点?
解决方法
delete_all
是一个ActiveRecord :: Base类方法.
你应该使用destroy_all
.像:
如果您不需要先查找MyContainer(或将其用于其他内容),那么正确使用delete_all会更快
@H_301_2@MyObject.delete_all(["my_container_id = ?",10])编辑:对于rails 3
@H_301_2@MyObject.where(my_container_id: 10).delete_all