会社は、既に持っているエントリを検索することでオートコンプリートできます。https://github.com/crowdint/rails3-jquery-autocomplete gemを使用して、追加しました
autocomplete :company, :name, :scopes => [:distinct]
私のコントローラーに、私のモデルには次のものがあります:
scope :distinct, lambda { select("companies.name").uniq }
「Merce」という用語を使用しても、私のシステムはメルセデス ベンツの 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
この宝石内で正しいクエリを作成する方法についての説明を探しています。