2010-08-01 7 views
5

Tengo el uso del complemento rails3-jquery-autocomplete y me pregunto cómo puedo usarlo para hacer varias palabras de autocompletar.cómo usar el complemento rails3-jquery-autocomplete para varias palabras autocompletar

p. Ej. INPUT rails, gem debe generar auto-list dos veces.

¿Cómo resolver este problema? ..

+0

¿Puedes publicar el código que ya has probado? y luego, ¿qué pasa con la salida? –

+0

¿Necesita usar el plugin Rails? Supongo que sería más fácil simplemente agregar el plugin jquery-ui a tus javascripts y configurarlo en javascripts. – skalee

Respuesta

6

rails3-jquery-autocompletar plugin? Parece que no es compatible con múltiples autocompletar, es necesario modificar el código del complemento. Si insiste en sus ideas anteriores, siga mis pasos.

  1. plazo bundle show rails3-jquery-autocomplete para obtener el plugin de trabajo directroy compañero
  2. /lib/autocomplete.rb
  3. modificar el define_method así:

    define_method("autocomplete_#{object}_#{method}") do 
        arr = params[:term].split(",") 
        unless params[:term] && params[:term].empty? 
        items = object.to_s.camelize.constantize.where(["LOWER(#{method}) LIKE ?", "#{arr[arr.size-1]}%"]).limit(limit).order(order) 
        else 
        items = {} 
    end 
    
    render :json => json_for_autocomplete(items, method) 
    

    final

  4. modificar autocomplete-rails.js como function split(val) { return val.split(/,\s*/); } function extractLast(term) { return split(term).pop(); } $(document).ready(function(){ $('input[autocomplete]').each(function(i){ $(this).autocomplete({ source: $(this).attr('autocomplete'), focus: function() { return false; }, select: function(event, ui) { var terms = split(this.value); // remove the current input terms.pop(); // add the selected item terms.push(ui.item.value); // add placeholder to get the comma-and-space at the end terms.push(""); this.value = terms.join(","); return false; } }); }); });

  5. reinicie su servidor y tratar

!! recuerde que es mejor hacer una copia de seguridad de autocomplete.rb para evitar sobrescribir después de ejecutar la instalación del paquete.

¡Buena suerte!

14

rails3-jquery-autocomplete ahora es compatible con la especificación de un delimitador con la opción de delimitador de datos, de modo que ya no es necesario entrar ilegalmente en él:

f.autocomplete_field: etiquetas, autocomplete_tag_business_path, "datos delimitador" => ''

Lo descubrí al intentar aplicar el truco anterior y descubrí que no es necesario. ¡Funciona genial para mí!

Cuestiones relacionadas