Компании можно заполнять автоматически, просматривая записи, которые у меня уже есть. Используя гем https://github.com/crowdint/rails3-jquery-autocomplete, я добавил
autocomplete :company, :name, :scopes => [:distinct]
к моему контроллеру и в моей модели у меня есть:
scope :distinct, lambda { select("companies.name").uniq }
Используя термин «Мерс», моя система по-прежнему возвращает все 5 записей для «Мерседес-Бенц». SQL:
35mCompany Load (4.0ms)[0m SELECT DISTINCT companies.name, companies.id FROM "companies" WHERE (LOWER(companies.name) ILIKE 'merce%') ORDER BY companies.name ASC LIMIT 10
Различные вещи, которые я пробовал:
select(:name).uniq => Not unique values
distinct("companies.name") => Wrong number of arguments
group(:id, :name) => Not unique values
group(:id, :name).uniq => Not unique values
Однако использование оператора select в контроллере (без автозаполнения) работает:
@companies = Company.select(:name).uniq => Perfect results
Ищете объяснение того, как сделать правильный запрос в этом драгоценном камне.