destroy と destroy! の違い
両者とも削除したら真の値(削除したインスタンス自身)ということは同じ。
失敗したら
destroy :false(偽)を返す
destroy!:例外が発生する(RecordNotDestroyed)
destroyは削除が失敗してもfalseが帰ってくるだけ。
もし削除処理中に万が一中断された場合に気づきたい場合は、destoroy!を使って例外を投げるようにする。
saveとsave! も同じ挙動をするけどdestroyと違ってモデルのバリデーションが呼ばれるからあまり気にしなくてよさそう?