/ / Adicionando grupos ao preenchimento automático - jquery, ruby-on-rails, preenchimento automático

Adicionando grupos ao preenchimento automático - jquery, ruby-on-rails, autocomplete

Preciso adicionar grupos a um já criadolista suspensa de preenchimento automático nos trilhos. Não sei por onde começar e nem sei se chamá-lo de "grupos" é apropriado, mas tenho que parecer com a imagem que postei. Ficaria muito grato se alguém pudesse pelo menos me indicar a direção certa para começar.

http://imgur.com/XLYzeKa

Respostas:

0 para resposta № 1

Eu acho que você pode adicionar um campo enum à sua tabela de frases para tipos (substantivo e verbo) ou adicionar um modelo para tipos se a frase puder ter os dois tipos.

Depois disso, você pode selecionar substantivos e verbos separadamente e criar um hash como { nouns: array_of_nouns, verbs: array_of_verbs } e envie-o para o seu JavaScript, onde você pode pesquisar em duas matrizes separadas.

Além disso, você pode usar hashes em vez de matrizes e agrupar frases pela primeira letra para acelerar a pesquisa. Por exemplo, se você tiver "substantivos" r, react, ruby, ruby-on-rails e javascript, seu hash_of_nouns Seria como { "j" => [ "javascript" ], "r" => ["ruby", "react", "ruby-on-rails", "r"] }. Após o primeiro caractere, inserido pelo usuário, você pode pegar a matriz e pesquisar nela. Será muito mais rápido com muitos dados do que simples array_of_nouns.


0 para resposta № 2

Esta solução funciona para mim:

  • para resolver maiúsculas de minúsculas na consulta de preenchimento automático, crie um índice de nome do campo que você deseja aplicar o preenchimento automático (para consultas como BINARY):

# db / migrate / ... AddIndexFieldnameToTablename

def change
add_index :tablename, :fieldname
end
  • para resolver valores de agrupamento, use escopo

# app / controller / yourtablenames_controller.rb

autocomplete :tablename, :fieldname, scopes: [:scope_rule_name]

# app / model / yourtablename.rb

scope :scope_rule_name, -> {group :fieldname}

Com relação a como aplicar o preenchimento automático para rails4, eu segui esta guia.