Validando URLs desde el modelo en Rails

Validando URLs desde el modelo en Rails

Hoy estaba buscando una forma de validar un URL desde el lado del modelo y no pude dar con ninguna solución implementada en el framework.

Luego de revisar Stack Overflow por un tiempo pude concluir que muchas personas decidían crear su propio validador desde cero usando expresiones regulares.

Llegué a una solución utilizando el módulo URI junto con regexp . Al utilizarlo nos devuelve un objeto Regexp que matchea strings con estilo URI.

Por tanto podemos validar el formato de la entrada en nuestro modelo de esta forma:

class Product
  validates_format_of :website_url, with: URI::regexp(%w(http https))
end

Me pareció una solución muy práctica y me dio con compartirla.