検証したいフィールドがあります。フィールドを空白のままにできるようにしたいのですが、ユーザーがデータを入力する場合は、特定の形式にする必要があります。現在、モデルで以下の検証を使用していますが、これではユーザーが空白のままにすることはできません。
validates_length_of :foo, :maximum => 5
validates_length_of :foo, :minimum => 5
目標を達成するためにこれをどのように書くのですか?
回答:
私はそれが次のようなものを必要とするかもしれないと思います:
validates_length_of :foo, minimum: 5, maximum: 5, allow_blank: true
validates_length_of :phone, :in => 7..32, :allow_blank => true
:allow_blank
-属性が空白の場合があります。検証をスキップします。
または、検証ドキュメントから、さらに簡潔に(新しいハッシュ構文を使用して):
validates :foo, length: 5..5, allow_blank: true
上限はおそらく「in:5..20」のようなもっと意味のあるものを表すはずですが、手紙に対する質問に答えるだけです。
in
文字列で動作します、数字だけのようです
validates :foo, length: 2..5, allow_blank: true
するはずですが、OPの場合は `length:{is:5}`で機能します
モデルを追加します。
validates :color, length: { is: 7 }
色は文字列です:
t.string :color, null: false, default: '#0093FF', limit: 7