delete, delete_allについて
delete, delete_allは、指定した条件のレコードをActiveRecordを介さず、SQLを直接実行することで削除します。
また、ActiveRecordを介さないので、モデルで関連づけられているデータは削除されません。
deleteは条件に当てはまるデータを一件削除します。
モデル名.find(id).delete
delete_allは条件に当てはまるデータを全て削除します。
モデル名.where(カラム).delete_all
destroy, destroy_allについて
destroy, destroy_allは、指定した条件に当てはまるレコードをActiveRecordを介して削除します。
ただ、deleteと違いモデル内でdependent: :destoryが設定されていれば、関連しているデータも一緒に削除します。
destroyは条件に当てはまるデータを一件削除します。
モデル名.find(id).destroy
destroy_allは条件に当てはまるデータを全て削除します。
モデル名.where(カラム).delete_all
関連しているデータがある場合の例
User.find(1).destroy
Tweetモデルと関連しているUserモデルのテーブルのidが1のデータを削除した場合、Userのid:1と関連しているTweetのデータも一緒に削除します。