公司可以通过查找我已经拥有的条目来自动完成。使用https://github.com/crowdint/rails3-jquery-autocomplete gem,我添加了
autocomplete :company, :name, :scopes => [:distinct]
到我的控制器,在我的模型中,我有:
scope :distinct, lambda { select("companies.name").uniq }
使用术语“Merce”,我的系统仍会返回 Mercedes Benz 的所有 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
寻找有关如何在此 gem 中进行正确查询的解释。