【Rails】NOT NULL制約とは
NOT NULL制約とは、
データベースのテーブルの項目につける制限(制約)のひとつで、
「空っぽの値(NULL)は入れちゃダメ制約」のことです。
NULLは「空だよー何も入ってないよー」ということをあらわす単語です。
NOT NULL制約が付与された項目にはNULLを入れることが出来ません。
NOT NULL制約とバリデーションではどう違う?
NOT NULL制約は、テーブルのカラムを定義します。
一方、バリデーションはモデルのバリデーションに記述します。
どっちもよく似ている感じがしますが、
両者の違いは空文字("")が許可されるかされないかの違いです。
「NOT NULL制約」は空文字が許可される一方、
バリデーションの「presence: true」では空文字は許可されません。
空文字含む全てのnullを許可したくない場合には「NOT Null制約」とバリデーションの「presence: true」の両方に記載しておくと安心です。
参考
【Rails】1分で分かる!Not Null制約とpresence: trueの違いについて簡単にまとめてみた|TechTechMedia