destroy_allとdelete_allの違い
#ActiveRecord
destroy_all
ActiveRecordによるレコード削除
削除する際に、Modelにdependent: :destroyが設定されている関連がある場合、その関連も一緒に削除してくれる
dependentで指定されている子レコードも消える
delete_all
指定した条件のレコードをSQLを直接実行して削除する。つまり、ActiveRecordを介さない
単にSQLのDeleteが流れるだけ
子レコードが残ってしまうことがある
だいたいdestroy_allを使うのでdelete_allを使うことは少ない
/icons/hr.icon
【Rails】destroy_allとdelete_allの挙動のちがい|Rubinistを目指す新米エンジニアのTECH BLOG
delete, delete_all, destroy, destroy_allについて - Qiita