結論
制約とバリデーションの違いは 空文字が許されるか否か 。
Not null制約
:空文字
presence: true
:空文字
Not null制約
だけでは、データベースに空文字が保存されてしまう。
Q:制約とかバリデーションって何?
A:アプリ制作で投稿フォームからの空文字
や未記入null
を防ぐため必要なシステムのこと。
データベースにおいてnull
は 特殊な扱い を受けるらしく不要なトラブルを避けるためにもこのシステムが採用されることが多いらしい。
Q:そもそも制約(constraint)とはどんな意味?
A:constraint
:制約、ある条件を付けて完全な自由にさせないこと、窮屈、強制 という意味
Rails
においては、テーブルのカラム
やデータ
に制限を加え、 想定通りの値 が入るようにすること。
Q:そもそもバリデーション(validation)とはどんな意味?
A:validation
:確認、検証 という意味
Rails
においては、あるデータ
を本当にデータベース
に保存していいのか検証するシステムのこと。