Validates_length_of используется внутри, но поле не должно быть обязательным? - PullRequest
0 голосов
/ 03 марта 2011

Я делаю это:

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

И пустое поле возвращает ошибку, почему это так?

Как проверить, чтобы оно было между 0..10, но поле в форме не является обязательным?

Ответы [ 4 ]

3 голосов
/ 03 марта 2011

Вы близки:

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

Вы можете изменить нулевой минимальный размер, поскольку он будет срабатывать только при наличии какого-либо ввода.

См. Также проверку документы .

0 голосов
/ 03 марта 2011

try:

validates_length_of: some_field,: Within => [0..10],: if =>: some_field?

0 голосов
/ 03 марта 2011

Вы можете передать :allow_blank в качестве опции, чтобы разрешить это:

validates_length_of :some_field, :within => 0..10, :allow_blank => true
0 голосов
/ 03 марта 2011

Может быть, это пустое значение вместо пустой строки, с которой оно проверяется?

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...