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