0

我正在使用rails3-jquery-autocomplete进行搜索,这对于单列效果很好。我需要一种方法来定制它,例如:

我有两列名为:

  • 类别
  • 收藏

现在类别和集合都会有一些重复的值。

认为,

类别 = Aurora、Austin、Aurora、Barrie、Barrie、Austin 等

系列 = 卧室、室内装潢、卧室、卧室、餐具等

现在,如果用户在自动完成搜索字段中键入“Au”,我想向奥斯汀的 Aurora显示自动完成结果,如果有任何以“Au”开头的集合我也想显示它们,类似地跳过重复值。

为了更清楚起见,如果用户在自动完成搜索字段中键入“B”,那么自动完成结果应该是类别中的“Barrie”,集合中的“卧室”,它应该跳过所有重复。

现在,我仅使用此覆盖方法从类别字段显示,并且它适用于类别。我不知道如何在自动完成搜索中使用多列。

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

那么,如何解决这个问题并自定义自动完成搜索?

4

1 回答 1

0

Any way I have solved this but, any best solution will be appreciated

I have done something like :

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
于 2013-10-22T13:47:42.153 回答