presence:trueとNot Null制約について


本記事について

本記事は、筆者自身の備忘録を形にして残すことで後の復習に役立てることと、同じ様なプログラミング初学者の方のお役に立てれば、という思いで作成するものであります。
誤り等ある場合には、お手数ですがご連絡いただけますと幸いです。

本記事の内容

本記事では、Ruby on Railsを使用して開発をしていく中で筆者自身がはっきりと定義づけられなかったpresence:trueNot Null制約について記しておきます。

presence:true

こちらはモデルに記述するもの。
バリデーションと呼び、他にも様々な正規表現を使ったバリデーションを設けることができる。
(以下参照元URL)
https://gist.github.com/nashirox/38323d5b51063ede1d41
お世話になってます🙇‍♂️

Not Null制約

マイグレーションファイルに記述するもの。

t. string :name, null:false

この様に記述する。

presence:true と Not Null制約の違い

データが空の時にエラーが出るようにするんじゃないの?役割ちょっと被ってない?という浅はかな考えでした。
前者は、空文字を許可しない
後者は、空文字を許可する
という違いがあるそうです。

引用元

https://techtechmedia.com/notnull-validation-
Qiita
https://qiita.com/jkr_2255/items/e1ca683c6fbdb02c2ec3