是否有更快捷的方法可以摧毁所有的铁轨?
我问这是因为rails会对每条记录执行单独的删除sql查询。
例如,在搜索4条记录时调用destroy all将运行4条删除sql命令。
Blerg.where("created_at > yesterday").destroy_all (4 results)
然后打电话......
DELETE FROM "blergs" WHERE "blergs"."id" = $1 [["id", 197782]]
4次。
有没有办法让它进入一个sql命令?
答案 0 :(得分:11)
您随时可以致电
Blerg.where("created_at > yesterday").delete_all
这只提供一个查询:
DELETE FROM "blergs" WHERE (created_at > '2012-11-26 16:27:56.678872')
请注意,这不会调用要删除的对象的任何回调。
答案 1 :(得分:3)
您也可以
Blerg.delete_all("created_at > '2012-11-01 00:00:00'")
更简洁。它执行一个SQL语句。