Validar formato permitiendo null

Estoy tratando de validar el formato de un campo teléfono, para que sólo
acepte números de 9 dígitos, pero trato de que también acepte que lo
dejen en blanco:

validates_format_of :tel_movil, :allow_nil => true, :with =>
/^[0-9]{9}$/i, :message => “^El teléfono móvil debe ser un número de
nueve dígitos”

El problema es que no le hace ni caso al :allow_nil => true, si lo dejo
en blanco salta el error… ¿alguna idea?

s2

Fernando,

Parece que el funcionamiento del allow_nil con validates_format_of es
un tema delicado.

Por un lado hay gente que piensa que eso debe estar en la expresión
regular:

http://dev.rubyonrails.org/ticket/840

Y luego está el hecho de que en realidad la cadena vacía no es nil:

Se puede hacer con :if/:unless pero mi consejo es que pongas el código
como:

validates_format_of :tel_movil, :allow_blank => true, :with =>
/^[0-9]{9}$/i, :message => “^El teléfono móvil debe ser un número de
nueve dígitos”

:allow_blank está disponible desde la 2.0.2 :slight_smile:

Saludos, espero que te sirva.

2008/6/9 Fernando C. [email protected]:

Eduardo Fernandez C. wrote:

Fernando,

validates_format_of :tel_movil, :allow_blank => true, :with =>
/^[0-9]{9}$/i, :message => “^El teléfono móvil debe ser un número de
nueve dígitos”

:allow_blank está disponible desde la 2.0.2 :slight_smile:

Saludos, espero que te sirva.

Perfecto, gracias Edu!!