/ / Dodawanie grup do autouzupełniania - jquery, ruby-on-rail, autouzupełnianie

Dodawanie grup do autouzupełniania - jquery, ruby-rails, autouzupełnianie

Muszę dodać grupy do już utworzonegolista autouzupełniania w szynach. Nie jestem pewien, od czego zacząć i nie jestem nawet pewien, czy nazwanie go „grupami” jest odpowiednie, ale muszę wyglądać jak zdjęcie, które zamieściłem. Byłbym bardzo wdzięczny, gdyby ktoś mógł przynajmniej mnie wskazać właściwy kierunek, aby zacząć.

http://imgur.com/XLYzeKa

Odpowiedzi:

0 dla odpowiedzi № 1

Myślę, że możesz dodać pole wyliczeniowe do tabeli zdań dla typów (rzeczownik i czasownik) lub dodać model dla typów, jeśli zdanie może mieć oba typy.

Następnie możesz osobno wybierać rzeczowniki i czasowniki i tworzyć skróty { nouns: array_of_nouns, verbs: array_of_verbs } i wyślij go do JavaScript, gdzie możesz wyszukiwać w dwóch osobnych tablicach.

Możesz także użyć skrótów zamiast tablic i grupowania zdań według pierwszej litery, aby przyspieszyć wyszukiwanie. Na przykład, jeśli masz „rzeczowniki” r, react, ruby, ruby-on-rails i javascript, Twój hash_of_nouns byłoby jak { "j" => [ "javascript" ], "r" => ["ruby", "react", "ruby-on-rails", "r"] }. Po wprowadzeniu pierwszego znaku przez użytkownika możesz wziąć tablicę i wyszukać w niej. Będzie dużo szybciej z dużą ilością danych niż proste array_of_nouns.


0 dla odpowiedzi nr 2

To rozwiązanie działa dla mnie:

  • aby rozwiązać rozróżnianie wielkości liter w zapytaniu autouzupełniania, utwórz indeks Nazwa pola które chcesz zastosować autouzupełnianie (tak do zapytania jako BINARY):

# db / migrate / ... AddIndexFieldnameToTablename

def change
add_index :tablename, :fieldname
end
  • aby rozwiązać wartości grupowania, użyj zakres

# app / controller / yourtablenames_controller.rb

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

# app / model / yourtablename.rb

scope :scope_rule_name, -> {group :fieldname}

Jeśli chodzi o sposób zastosowania autouzupełniania dla rails4, podążyłem za tym to przewodnik.