.createと.create!の違いとは
バリデーションの理解
オブジェクトがデータベースに保存される前に、そのデータが正しいかどうか(こちらが設定したフィルタを通過するかどうか)を検証する仕組みをバリデーションという
!の有無による違い
createメソッドを実行する時に、バリデーションを通らなかった場合に挙動が異なる
!有:ActiveRecordエラーが表示され、次のアクションに進めない
!無:次のアクションに進みはするが、データベースにデータが登録されない
→saveとupdateは「false」を返し、createはオブジェクトをそのまま返す
バリデーションの設定
app > models > application_record.rb
validates :カラム名, 条件
バリデーションの種類(一例)
空でないこと:presence: true
空であること:absence:true
長さ:length: { minimum: 1 } 1文字以上
length: { maximum: 10 } 10文字以下
length: { in: 1..10 } 1文字以上10文字以下
length: { is: 7 } 7文字のみ