Underc0de

Programación Scripting => Ruby => Mensaje iniciado por: Alejandro_99 en Diciembre 01, 2013, 12:51:32 AM

Título: Validaciones en Ruby on rails
Publicado por: Alejandro_99 en Diciembre 01, 2013, 12:51:32 AM
(http://manraog.files.wordpress.com/2013/11/validation_scaffold.png)

¿Por qué utilizar validaciones?

Las validaciones se utilizan para garantizar que los datos que se están guardando en la base de datos sean los correctos con el formato que nosotros establezcamos desde un principio. Por ejemplo, puede ser importante para una aplicación guardar el correo electrónico de forma correcta, aunque con estos métodos no validamos que el correo le pertenezca a nuestro usuario, podemos por medio de un formulario exigir el campo obligatoriamente y que además éste cumpla con el formato de un correo electrónico.

Como probablemente ya sepan hay otras maneras de validar la información de los objetos que se almacenan en la base de datos, como lo son las validaciones del lado del cliente (JavaScript: Útiles pero poco fiables), validaciones a nivel de controlador (por lo general se vuelven difíciles de manejar, probar y mantener) o las validaciones nativas en base de datos (Se establece una fuerte dependencia del manejador de base de datos, haciendo difícil el mantenimiento y la adaptabilidad de nuestras aplicaciones)

Validaciones

Entrando de una vez en materia para nuestro curso desarrollaremos todo el ejemplo para ver la magia de los validadores de ActiveRecord.
Preparación de nuestro modelo

Lo primero que debemos hacer para que Rails reconozca nuestras validaciones, es adaptar nuestros modelos indicándoles a cada uno de los atributos el tipo de validación que necesita. Algunos de los tipos de validadores que nos ofrece Rails son:
Confirmación confirmation

Validación que utilizamos cuando queremos que el usuario confirme la información que nos este suministrando.
Formato format

Este tipo de validación verifica que la información del usuario concuerde con una expresión regular que se especifica con la función :with
Tamaño o longitud length

Este tipo de asistente juega con la longitud de los datos suministrados por el usuario, para que se verifique según nuestras necesidades.
Valor nulo o vacío presence

Este asistente de validación nos verifica si el atributo del modelo puede ser nulo.

Numérico numericality

Este asistente verifica que el atributo sólo sea numérico
Único uniqueness

Este último asistente que estudiaremos, por el momento, nos verifica justo antes de guardar en la base de datos que nuestro objeto no este repetido, es decir, que sea único.

Ahora, luego de haber descrito muy brevemente algunos de los validadores que nos ofrece Rails veamos un ejemplo donde usaremos algunos de estos atributos.

http://img812.imageshack.us/img812/4898/6lq2.png (http://img812.imageshack.us/img812/4898/6lq2.png)

Numérico numericality

Este asistente verifica que el atributo sólo sea numérico
Único uniqueness

Este último asistente que estudiaremos, por el momento, nos verifica justo antes de guardar en la base de datos que nuestro objeto no este repetido, es decir, que sea único.

Ahora, luego de haber descrito muy brevemente algunos de los validadores que nos ofrece Rails veamos un ejemplo donde usaremos algunos de estos atributos.

http://img812.imageshack.us/img812/4898/6lq2.png (http://img812.imageshack.us/img812/4898/6lq2.png)

Como seguramente hemos visto en el ejemplo, una serie de opciones que le dan forma a las validaciones, como el mensaje: que nos da el error que queremos mostrar cuando no se cumpla la condición.

Preparación del controlador y vista

Una vez creado el modelo creamos nuestros controladores para generar, recibir y procesar la información ingresada por el usuario. El controlador que realizaremos para este ejemplo sólo consta de dos métodos: index que carga la lista de personas ya almacenadas y nos mostrará un formulario para cargar la información y create simplemente recibe la información del formulario y la procesa. Veamos esto en código.

http://img10.imageshack.us/img10/2341/m0yq.png (http://img10.imageshack.us/img10/2341/m0yq.png)

Por último creamos nuestro formulario donde cargaremos la información.

http://img811.imageshack.us/img811/9063/iec4.png (http://img811.imageshack.us/img811/9063/iec4.png)

Como ven en la imagen se puede dividir en dos partes: la parte superior consta del manejo de errores, es donde se obtiene el objeto, se verifica si contiene errores y los muestra en una lista; y por último la parte inferior es nuestro formulario.

Veamos cómo nos muestra Ruby on Rails los errores en el formulario que acabamos de crear (obviamente se pueden editar los estilos para mostrar una mejor presentación).

http://img34.imageshack.us/img34/9418/fuus.png (http://img34.imageshack.us/img34/9418/fuus.png)

Conclusión

En esta lección aprendimos cómo crear un formulario y validarlo en el servidor antes de almacenarlo en nuestra base de datos. También vimos algunos de los tipos de validadores que ActiveRecord nos provee y estudiamos la importancia de este tema.

Una vez más te recomiendo echarle un vistazo a la serie completa de Ruby desde cero, así como a las otras series de CodeHero, agradeciendo de antemano todas sus dudas y comentarios en la sección de comentarios.

¡Hasta el próximo capítulo!
Título: Re:Validaciones en Ruby on rails
Publicado por: Alex en Diciembre 01, 2013, 04:22:39 AM
interesante, muy buen aporte :)

saludos!