destroyとdelete
ActiveRecord::Baseのdestroyメソッドやdestroy_allメソッドは、内部でモデルオブジェクトをロードし、各モデルオブジェクトのdestroyメソッドを呼び出している。
メリット
- 各種コールバックが利用できる。
デメリット
- 逆に、大量のレコードを一気に削除したい場合には不向き。
大量のレコードを一度に削除するときは、ActiveRecord::Base.deleteメソッドかActiveRecord::Base.deleteメソッドを利用する。
メリット
- この2つのメソッドはSQLのDELETE文を直接実行するので、ActiveRecord::Baseのdestroyメソッドやdestroy_allメソッドよりも素早く動作する。