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!メソッドが失敗した場合に、”エラー: メールアドレスが不正です” のようにエラーメッセージを表示する処理を行っています。