我这样做:
validates_length_of :some_field, :within => 0..10
空字段会返回错误,为什么会这样?
如何检查以确保它在0..10之间,但表格中的字段不是强制性的?
答案 0 :(得分:3)
你很亲密:
validates_length_of :some_field, :within => 0..10, :allow_blank => true
您可以更改零最小尺寸,因为只有在有输入时才会触发。
另请参阅验证docs。
答案 1 :(得分:0)
您可以传递:allow_blank
作为选项以允许此操作:
validates_length_of :some_field, :within => 0..10, :allow_blank => true
答案 2 :(得分:0)
尝试:
validates_length_of:some_field,:within => [0..10],:if => :some_field
答案 3 :(得分:-1)
也许它是一个零值而不是一个空字符串,它被验证了?
irb(main):006:0> ''.length
=> 0
irb(main):007:0> nil.length
NoMethodError: You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.length
from (irb):7