Autocomplete simples para Rails 3 com jQuery
Autocomplete é uma ferramenta muito útil em um aplicativo web. Tanto para manter a consistencia dos dados quanto para facilitar a vida do usuário.
A gem rails3-jquery-autocomplete torna a implementação do autocomplete no rails 3 bem simples.
Antes de começar, verifique se você já está incluindo o jQuery e o jQuery.ui em seu layout, pois eles são pre-requisito para essa gem.
Se estiver tudo ok, vamos ao trabalho. Para começar, os passos básicos:
Adicione a gem ao seu Gemfile:
gem 'rails3-jquery-autocomplete'
Dê um:
bundle install
Rode o generator:
rails generate autocomplete
E inclua o javascript em seu layout:
javascript_include_tag "autocomplete-rails.js"
Então, com tudo configurado partimos para a utilização.
Digamos que nós tivessemos os modelos Product e Category e quisessemos fazer autocomplete do nome da categoria nos formulários dos produtos.
Note que o campo category do modelo Product precisa ser um campo de texto. Para fazer autocomplete em um campo que é chave estrangeira a abordagem é um pouco diferente, e vai ficar para um próximo post.
Seguindo. O próximo passo é adicionar no products_controller.rb:
autocomplete :category, :name
Isso cria uma action chamada autocomplete_category_name que retorna um json com os valores possiveis para o campo name.
Inclua a action nas rotas:
resources :products do
get :autocomplete_category_name, :on => :collection
end
Nas views você só precisa substituir o text_field pela tag autocomplete_field, como no exemplo:
form_for @product do |f|
f.autocomplete_field :category_name, autocomplete_category_name_products_path
end
E é só. Você tem um autocomplete pronto e funcional.
3 comentários : 04.01.2011 10:00 AM
Unresponsive script no selenium
No começo da semana no Lucidus, começamos a ter problemas com o selenium. No fim da execução dos testes ele gera um relatório que é interpretado pelo nosso cruisecontrol.rb.
O problema é que já possuímos testes DEMAIS no selenium, então na hora de gerar o relatório, o firefox dizia aquela mensagem de que “um script em execução não está respondendo….”. Quando íamos conferir, nosso build havia falhado por conta disso.

Solução: acessar o about:config do firefox e alterar o campo dom.max_script_run_time de 10 (default) para 40, por exemplo.
0 comentários : 10.07.2008 10:46 PM



