Marcio Trindade

Live Validations

Em meus últimos projetos utilizei o plugin live-validations que me facilitou trabalhar com as validações no lado do cliente. A lógica do plugin é passar a validação de seus models para js evitando assim posts desnecessários. Este funciona com jQuery ou Prototype No meu caso utilizei a jQuery e vou mostrar abaixo como é simples fazer isso.

jQuery - live-validations

Pra começar vamos fazer o download do validate e colocar o arquivo jquery.validate.min no diretório public/javascripts e então basta instanciar a jQuery e o plugin.

application.html.erb
<%= javascript_include_tag "http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" %>
<%= javascript_include_tag "jquery.validate.min" %>

Agora vamos instalar o live-validations pra facilitar a nossa vida e fazer a validação automática.

console
script/plugin install git://github.com/augustl/live-validations.git

Então adicione a linha abaixo no seu environment.rb ou dentro de um intializer (que eu prefiro)

config/initializers/live_validation.rb
LiveValidations.use :jquery_validations

Agora basta adicionar o código :live_validations => true nos formulários que pretende usar validação.

_form.html.erb
<% form_for(@user, :live_validations => true) %>

O live-validations vai aplicar as mesmas regras que você colocar no seu model para o formulário através do plugin validate, incluindo validações como validates_uniquess_of onde é feito uma requisição ajax pra validar se o campo é valido ou não.

Acredito que desta forma fica mais fácil aplicar as validações e diminui o risco de você adicionar as validações para um (model ou javascript) e esquecer de aplicar a mesma validação para o outro.