我正在关注Railscasts #399,在我的搜索框中使用jquery-ui的自动完成功能实现自动完成功能。但是,我还希望能够包含每个搜索建议属于哪个类别并对建议进行分组,类似于Pandora在歌曲/艺术家/专辑中的匹配方式。
我的模型看起来像这样:
class SearchSuggestion < ActiveRecord::Base
attr_accessible :popularity, :term, :type
def self.terms_for(prefix)
suggestions = where("term like ?", "#{prefix}_%")
suggestions.order("popularity desc").limit(10).pluck(:term)
end
end
我的控制器是这样的:
class SearchSuggestionsController < ApplicationController
def index
render json: SearchSuggestion.terms_for(params[:term])
end
end
如何修改terms_for以便我可以包含:以自动完成可以处理的格式输入我的json,以及如何渲染它?
答案 0 :(得分:0)
我找到了一种方法来做我想做的事,所以我想我会回答我自己的问题。我发现了方便的收集方法,并编写了我的函数:
def self.terms_for(prefix)
suggestions = where("term like ?", "#{prefix}_%").order("popularity desc").limit(10)
suggestions.collect {|suggestion| {"value" => suggestion["term"], "type" => suggestion["suggestion_type"] }}
end