紳士なブログ

紳士すぎてすみません

destroyとdelete

ActiveRecord::Baseのdestroyメソッドやdestroy_allメソッドは、内部でモデルオブジェクトをロードし、各モデルオブジェクトのdestroyメソッドを呼び出している。

メリット

  • 各種コールバックが利用できる。

デメリット

  • 逆に、大量のレコードを一気に削除したい場合には不向き。

 

大量のレコードを一度に削除するときは、ActiveRecord::Base.deleteメソッドかActiveRecord::Base.deleteメソッドを利用する。

メリット

  • この2つのメソッドはSQLのDELETE文を直接実行するので、ActiveRecord::Baseのdestroyメソッドやdestroy_allメソッドよりも素早く動作する。