【Rails】ActiveRecordのcreateとcreate!についてまとめてみた

Rails

ActiveRecordのcreateメソッドの使い方

ActiveRecordのcreateメソッドは、新しいレコードをデータベースに作成します

使い方は次のようになります。

モデル名.create(カラム1: value1, カラム2: value2, ...)

例えば、Userモデルに新しいレコードを作成する場合は、次のようになります。

User.create(name: "John", email: "john@example.com")

これにより、データベースに新しいユーザーが作成されます。

ActiveRecordのcreate!メソッドの使い方

ActiveRecordのcreate!メソッドは、createメソッドと同じように新しいレコードをデータベースに作成します。

違いとしてはcreate!メソッドは、作成に失敗した場合にActiveRecord::RecordInvalid例外を発生させます。

使い方は次のようになります。

モデル名.create!(カラム1: value1, カラム2: value2, ...)

例えば、Userモデルに新しいレコードを作成する場合は、次のようになります。

User.create!(name: "John", email: "john@example.com")

これにより、データベースに新しいユーザーが作成されます。もし、validationによって失敗した場合は ActiveRecord::RecordInvalid 例外が発生します。

この create! メソッドは、validationに失敗したときに例外を発生させることで、開発者に明確なエラーを伝えることができます。

ActiveRecord::RecordInvalidエラーの例外処理のコード例

以下のように例外処理を記述することで、create!メソッドで失敗した場合に特定の処理を実行できます。

begin
  User.create!(name: "John", email: "john@example.com")
rescue ActiveRecord::RecordInvalid => e
  puts "エラー: #{e.message}"
end

この例では、create!メソッドが失敗した場合に、”エラー: メールアドレスが不正です” のようにエラーメッセージを表示する処理を行っています。

例外処理により、エラーになっている箇所を検出し、修正することができるが、適切な例外処理をしないとアプリケーションがクラッシュする可能性もあるため、適切な例外処理をしましょう。

タイトルとURLをコピーしました