save!やdestroy!の使い方

掲示板の作成時にsaveとsave!、掲示板の削除の時にdestroyとdestroy!どちらを使用したらいいのだろうと疑問に思ったので、勉強した内容をまとめます。

目次


掲示板作成時のsaveとsave!について

saveメソッドは、データベースの登録・更新を行う前に自動的に検証を行い、検証エラーがあればfalseを返します。 例えば、掲示板投稿内容が記載されていない、文字数がオーバーしているなどの処理が失敗する可能性が想定される時に使われます。

save!メソッドは、検証エラー時にfalseを返すのではなく例外を発生させるメソッドです。save!を使った場合は、例外が出なければデータベースへの登録・更新を行われたと考えることがで、処理が失敗する可能性が想定されない時に使われます

このことから、掲示板作成時には、入力内容の抜けや文字数オーバーのエラーが多いに考えられるので、saveを使うのが妥当でしょう。


掲示板削除時のdestroyとdestroy!

先ほどのsaveとsave!の説明をdestroyにも当てはめることができます。

掲示板の削除は、処理が失敗する可能性が想定されるでしょうか。掲示板を削除するだけなので、いちいちvalidatesを書かないですよね。 掲示板削除昨日は、処理が失敗する可能性を想定されていないので、destroy!を使うのが妥当でしょう。


最後に

最後まで読んでいただき誠にありがとうございました。参考になれば幸いです。