概要
validationの書き方について、疑問に思うことがありまとめてみました
内容
正規表現と空文字のvalidationを書くときは、下記のように書くかと思います。
外部に指定する
validates :attribute, format: { with: 正規表現, message: "正しい形式で入力してください” }, allow_blank: true
空文字であればvalidationでパスできない。もしくは正しいフォーマットではないのでパスできないの意味かと思います。
では、下記のはどうでしょうか?
内部に指定する
validates :attribute, format: { with: 正規表現, message: "正しい形式で入力してください”, allow_blank: true }
意味としては、空文字であればパスし、formatチェックはスキップします。
空文字でなければ、formatチェックの検証します。
結論
実際の挙動は同じように思えます。(違いがわからなかった。。。。)
内部に指定するほうが、冗長になるときはわかりやすくなるのかな?と思います。
もし、決定的な違いがわかる方がいれば教えて下さい!!!