Saltar al contenido

los rieles eliminan los valores no numéricos antes de guardar

Entiende el código correctamente antes de utilizarlo a tu proyecto y si tdeseas aportar algo puedes comentarlo.

Solución:

Seguro que has definido la phonenumber columna como número. Por eso cuando te pones '925-555-5555' en el phonenumber attribute, se echa a un número, y sólo 925 se mantiene.

La mejor solución es cambiar el tipo de columna en su base de datos a string. Crear una nueva migración:

change_column :table_name, :phonenumber, :string, limit: 30

De lo contrario, puede anular el configurador de esta manera para eliminar los caracteres no numéricos (pero no arreglará los números de teléfono que comienzan con '0'):

def phonenumber=(phonenumber)
  write_attribute(:phonenumber, phonenumber.gsub(/D/, ''))
end

Más alternativas en esta publicación de blog

La forma más fácil de hacerlo es mutando el field= método:

def field=(value)
  super(value.delete('^0-9'))
end

Recuerda algo, que puedes optar por la opción de añadir un criterio justo .

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada.