我有一个要验证的字段。我希望该字段能够保留为空白,但是如果用户正在输入数据,我希望它采用某种格式。目前,我在模型中使用以下验证,但这不允许用户将其留空:
validates_length_of :foo, :maximum => 5
validates_length_of :foo, :minimum => 5
我该怎么写才能实现我的目标?
Answers:
我认为可能需要这样的东西:
validates_length_of :foo, minimum: 5, maximum: 5, allow_blank: true
validates_length_of :phone, :in => 7..32, :allow_blank => true
:allow_blank
-属性可以为空;跳过验证。
甚至更简洁(使用新的哈希语法),来自validates文档:
validates :foo, length: 5..5, allow_blank: true
上限应该表示一些更有意义的内容,例如“ in:5..20”,但只是回答字母的问题。
in
将与字符串一起使用,似乎只是数字
validates :foo, length: 2..5, allow_blank: true
但是在OP的情况下可以使用`length:{is:5}`