質問: Rails4 ActiveRecordのdestroyで例外を発生させる - ayaketanのプログラミング勉強日記 > > Rails4からdestroy!があるようだが、destroy_all!は存在しない。 > > 単体の削除は下記のように記述すればよい > > > > > There is delete, delete_all, destroy, and destroy_all. > > > **Rails4を想定しています**。 Rails4で`destory!`が導入された記事を発見しました(上記日本語ページ) `delete`, `delete_all`, `destroy_all`には存在しないのはなぜでしょうか? 作成、更新は例外を発生させることで成功失敗の処理を分けることができるのに、削除系のみ`if`による判定でしょうか?
回答: `delete` `delete_all`はコールバックを呼ばないのでActiveRecordのレベルで例外を投げることはありません。 `create_all`はありませんし、`update_all`はありますが例外を投げる`update_all!`はありません。 `create!` `update!` `destroy!` は揃っています。