使用内部的Validates_length_of,但该字段不应该是强制性的?

时间:2011-03-03 02:00:45

标签: ruby-on-rails

我这样做:

validates_length_of  :some_field, :within => 0..10

空字段会返回错误,为什么会这样?

如何检查以确保它在0..10之间,但表格中的字段不是强制性的?

4 个答案:

答案 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