はじめに
みなさん、こんにちは torihaziです
今日はタイトルのことについて軽く触れていこうと思います。
というかそれが結論なのでそれ以上言うことないのですが。
ま、いいか。
結論
RailsにおいてDBへのCreate、Update、Deleteとかする際に例外処理をする目的で
create!のように! をつけるかと思いますが、!で例外処理が働くのは
ActiveRecord::Baseを継承したモデルに対してのみです。
経緯
社内プロジェクトの独自実装のクラスで ActiveRecord::Baseを継承していない::Hoge::Hogehoge.create!のようにしてたところ
そんなもんないぞとRailsから怒られたことが発端。
調べてみると、!で例外処理を投げることができるのはActiveRecord::Baseの機能の1つらしい。
終わりに
確かに !つけると例外処理になるのは知ってましたが、あれはActiveRecord::Baseの機能だったんですね。初耳でした。
少ないですけど、今日はここまで。