0

我正在使用rails3-jquery-autocomplete進行我的搜索,這對於單列工作正常。我需要一種方法來定製它,如:rails3-jquery-autocomplete:一種顯示任一類別或集合建議的方法

我有一個名爲兩列:

  • 類別
  • 收集

現在無論是分類和收集將有一些是重複的值。

假設,

類=極光,奧斯汀,極光,巴里,巴里,奧斯汀等

收集=臥室,Upholestry,臥室,臥室,餐桌椅等

現在,如果用戶在自動填充搜索字段輸入「Au」,我想將自動填充結果顯示爲Aurora,Austin,跳過重複值simi如果有任何以「Au」開頭的收藏,我也想展示它們。

更加清晰,如果用戶鍵入「B」在自動完成搜索領域,然後自動完成的結果應該是「巴里」的範疇,「臥室」,從收集,它應該跳過所有重複。

現在,我只使用這種覆蓋方法顯示類別字段,它對類別工作正常。我不知道如何在自動完成搜索中使用多列。

autocomplete :slide_show, :category 

def autocomplete_slide_show_category 
render json: SlideShow.select("DISTINCT category as value").where("LOWER(category) like LOWER(?) ", "#{params[:term]}%") 
end 

那麼,如何解決這個問題並自定義自動完成搜索?

回答

0

無論如何,我已經解決了這一點,但,任何最好的解決方案可以理解

我做一樣的東西:

autocomplete :slide_show, :category 


def autocomplete_slide_show_category 
category = [] 
collection = [] 
result = [] 

categories = SlideShow.where("manufacturer_id = ? AND category ILIKE ?", @manufacturer.manufacturer_id, "#{params[:term]}%") 
collections = SlideShow.where("manufacturer_id = ? AND collections ILIKE ?", @manufacturer.manufacturer_id, "#{params[:term]}%") 

# push slide_show category to category array 
categories.each do |result| 
    category << result.category 
end 

# push slide_show collections to collection array 
collections.each do |result| 
    collection << result.collections 
end 

# filter category or collection array to provide unique result 
result = category.uniq + collection.uniq 

# render the unique category or collection to display in auto complete suggestion 
render json: result 
end