Я делаю это:
validates_length_of :some_field, :within => 0..10
И пустое поле возвращает ошибку, почему это так?
Как проверить, чтобы оно было между 0..10, но поле в форме не является обязательным?
Вы близки:
validates_length_of :some_field, :within => 0..10, :allow_blank => true
Вы можете изменить нулевой минимальный размер, поскольку он будет срабатывать только при наличии какого-либо ввода.
См. Также проверку документы .
try:
validates_length_of: some_field,: Within => [0..10],: if =>: some_field?
Вы можете передать :allow_blank в качестве опции, чтобы разрешить это:
:allow_blank
Может быть, это пустое значение вместо пустой строки, с которой оно проверяется?
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