railsのモデルにバリデーションをかける時のTipsです。
郵便番号や電話番号、クーポンナンバーなどで、空欄でも良いけれど登録する際は「整数のみOKで文字数も制限したい!」という時があると思います。
そんな時は、次の書き方でOKです。
validates :num, allow_blank: true, numericality: {only_integer: true}, length: { in: 10..11 }
以下が「空欄でもOK」の部分。
allow_blank: true
以下が「整数のみ許可」の部分。
numericality: {only_integer: true}
最後が「文字数制限」の部分です。具体的な数値は必要に応じて設定してください。
length: { in: 10..11 }
順序は変わっても問題ないかと思います。
ちなみに、バリデーションの種類については以下の記事がとても勉強になりました。
よかったらどうぞ!
https://qiita.com/shunhikita/items/772b81a1cc066e67930e