Plugin LiveValidation para Rails
Este plugin fue parido básicamente por los pasillos, bares y habitaciones de hotel de la RailsConfEurope, supongo que llevado por el ambientazo que había, que te hacía sentir la necesidad de hacer algo chulo ya. Los detalles se han ido puliendo en ratos muertos desde entonces. Obvia decir que esos ratos muertos han sido alarmentemente pocos. ![]()
Avisando que es beta total, así que Puede Fallar (tm), y precisamente por eso te agradezco que lo pruebes, y si te da algún problema o hay algo que no te mole me des un toque y me lo cuentes.
La idea del plugin es integrar en Rails la librería de Javascript LiveValidation, que no sé si conoces, pero está superchula. Se trata de un librería para validación de formularios (al estilo de las validaciones de Rails para los modelos) en cliente. Estas validaciones están muy chulas pero obviamente no te puedes fiar de ellas (el usuario puede tener Javascript desactivado, sin ir más lejos), así que tienes que volver a validar en el servidor. Y esto, para cualquier vago o fundamentalista del DRY que se precie, es casi herético.
Este plugin genera automáticamente el código Javascript para validar en el cliente a partir de las validaciones que tengas definidas en los modelos, a condición 1) que uses la validación estándar de Rails (obvio), y 2) que uses los helpers para generar formularios. Es totalmente transparente, así que en teoría puedes instalarlo en una aplicación ya hecha, y si se cumplen las condiciones citadas, se empezará a ejecutar la validación en cliente.
Instrucciones:
- Instala el plugin:
$ script/plugin install svn://rubyforge.org/var/svn/livevalidation
- Instala el Javascript y el CSS en el public/, con esta tarea de Rake:
$ rake livevalidation:install
Recuerda que habrás de incluirlos en las cabeceras de las páginas, así como Prototype (LiveValidation se basa en Prototype), por ejemplo así:
<%= javascript_include_tag 'prototype', 'live_validation' %> <%= stylesheet_link_tag 'live_validation' %>
- No hay paso 3, salvo lo ya dicho: que crees tus formularios con algo de este estilo (cosa que, por otra parte, deberías estar haciendo hace ya mucho):
<% form_for(:resource, :url => resources_path) do |f| %> <%= f.text_field :name %> [etcétera ...] <% end %>
Lo pruebas y me lo cuentas. ![]()
Por hacer:
- Añadir soporte para algunas validaciones y opciones que faltan (principalmente,
validates_confirmation_of) - Más tests (aunque las partes que más guerra me dieron sí están cubiertas)
Documentación (en la mejor tradición. Ya hay un README, además colgado en la flamante página del plugin.
). Aunque sea un mísero README






lamazmorradelandroide dijo
Live validation, genial xD
Fuerza y honor.
12 Octubre 2007 | 09:46 PM