駆け出しエンジニアの気ままブログ

気になったことについて、調べながら投稿するブログです。

validationの書き方

概要

validationの書き方について、疑問に思うことがありまとめてみました

内容

正規表現と空文字のvalidationを書くときは、下記のように書くかと思います。

外部に指定する

validates :attribute, format: { with: 正規表現, message: "正しい形式で入力してください” }, allow_blank: true

空文字であればvalidationでパスできない。もしくは正しいフォーマットではないのでパスできないの意味かと思います。

では、下記のはどうでしょうか?

内部に指定する

validates :attribute, format: { with: 正規表現, message: "正しい形式で入力してください”, allow_blank: true }

意味としては、空文字であればパスし、formatチェックはスキップします。

空文字でなければ、formatチェックの検証します。

結論

実際の挙動は同じように思えます。(違いがわからなかった。。。。)

内部に指定するほうが、冗長になるときはわかりやすくなるのかな?と思います。

もし、決定的な違いがわかる方がいれば教えて下さい!!!