Emili Parreño

Autocompletado de campos en Ruby on Rails

09 May 2007 |

Después de muchas pruebas he conseguido implementar el autocompletado en Ruby on Rails. Os explico: Lo primero es incluir en el layout las librerias javascript necesarias

<%= javascript_include_tag "prototype", "effects", "controls" %>

En la vista se crea un campo autocomplete tal que así­

<%= text_field_with_auto_complete :cliente, :poblacion, { :size => 25 }, :skip_style => true -%>

Ahora es necesario crear en el controlador un método como éste

  def auto_complete_for_cliente_poblacion
    search = params[:cliente][:poblacion]
    param= search.downcase + '%'
    find_options= {:conditions => [ 'LOWER(poblacion) LIKE ?', param ], :order => 'poblacion ASC', :limit => 5, :group => "poblacion"}
    @clientes = Cliente.find(:all, find_options)
    render :partial => "autoupdate_poblacion" 
  end

Y por último creamos el partial _autoupdate_poblacion.rhtml y añadimos lo siguiente

<ul class="autocomplete_list">
  <% for cliente in @clientes.to_a -%>
    <li class="autocomplete_item"><%= cliente.poblacion %></li>
  <% end -%>
</ul>

Si quereis darle un poco de formato añadís al css las clases autocomplete_list y autocomplete_item.