Rails3-jquery-autocomplete различные значения - PullRequest
0 голосов
/ 11 февраля 2011

Я использую rails3-jquery-autocomplete gem в поле с неуникальными значениями, но я хочу, чтобы полученные результаты не содержали дубликатов.Есть идеи, как этого добиться?

Ответы [ 2 ]

1 голос
/ 06 февраля 2017

Поскольку я сам столкнулся с этим, я подумал, что запишу свое собственное решение для потомков, так как оно не требует редактирования источника драгоценного камня.Это для официально поддерживаемого форка гема: https://github.com/bigtunacan/rails-jquery-autocomplete.

Вы можете обрабатывать кодировку json напрямую через блок автозаполнения в контроллере, который мы можем использовать для изменения массива записей.1005 * Вот пример, в котором мы получаем уникальный список школ, в которые ходят учащиеся:

autocomplete :student, :school do |items|
  ActiveSupport::JSON.encode( items.uniq{ |i| i["value"] } )
end

"items" - это массив хэшей, которые по умолчанию содержат идентификатор, метку изначение, поэтому в кодер json передаются только уникальные значения (на ваш выбор).

1 голос
/ 04 апреля 2011

У меня была такая же проблема в моем проекте https://github.com/marciomr/Terra-Livre, и я решил ее следующим образом:

  1. Я установил rails3-jquery-autocomplete в качестве плагина в каталоге vendor / plugin
  2. Я изменил файл helpers.rb следующим образом:

def json_for_autocomplete(items, method, extra_data)
  json = items.collect do |item| # here I put the result in a variable
    hash = {"label" => item.send(method), "value" => item.send(method)} #here I removed the id
    extra_data.each do |datum|
      hash[datum] = item.send(datum)
    end if extra_data
    hash
  end
  json.uniq # this line is new
end

Я удалил идентификатор из файла json, а затем получил значения uniq. Так как мне не нужен идентификатор, он работал нормально для меня. Я думаю, что если мне нужен идентификатор, я могу добавить его в extra_data, но я не уверен.

Я только что разработал проект с этим изменением: git: //github.com/marciomr/rails3-jquery-autocomplete.git

...