Torihaji's Growth Diary

Little by little, no hurry.

Railsの 例外処理 したければなんでも!つければいいてわけじゃない

はじめに

みなさん、こんにちは torihaziです

今日はタイトルのことについて軽く触れていこうと思います。

というかそれが結論なのでそれ以上言うことないのですが。

ま、いいか。

結論

RailsにおいてDBへのCreate、Update、Deleteとかする際に例外処理をする目的で

create!のように! をつけるかと思いますが、!で例外処理が働くのは

ActiveRecord::Baseを継承したモデルに対してのみです。

経緯

社内プロジェクトの独自実装のクラスで ActiveRecord::Baseを継承していない::Hoge::Hogehoge.create!のようにしてたところ

そんなもんないぞとRailsから怒られたことが発端。

調べてみると、!で例外処理を投げることができるのはActiveRecord::Baseの機能の1つらしい。

終わりに

確かに !つけると例外処理になるのは知ってましたが、あれはActiveRecord::Baseの機能だったんですね。初耳でした。

少ないですけど、今日はここまで。