jackの勉強日記

勉強したことをアウトプットするための日記です。

allow_blank

railsのアプリを作成している中で、正規表現で入力欄にバリデーションをかけていました。

しかし、任意入力欄を空欄でフォームを入力すると

”不正な値です”とエラーメッセージが表示されました。

presence: trueとはしていないのになぜ?と一瞬思いましたが、

正規表現でかけたバリデーションに引っかかっているので当たり前ですね。

 

ググってみるとallow_blankというオプションにたどり着きました。

これはフォームに入力があった場合のみバリデーションをかけるオプションで

今回はこれがallow_blankオプションが使えそうです。

allow_balnk: true としたらうまくいきました。

 

少し別件ですが、入力必須項目でpresence :trueと正規表現の両方をかけた場合に、

空欄でフォームを入力するとエラーメッセージ が2つ出てきました。

これも正規表現の方にallow_blank: trueとすることで解決できました!