0

Railscasts#399に従って、jquery-uiのオートコンプリートを使用して検索ボックスにオートコンプリートを実装しています。ただし、PandoraがSong / Artist / Albumで一致する方法と同様に、各検索候補が属するカテゴリを含めて、提案をグループ化できるようにしたいと思います。

私のモデルは次のようになります。

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

オートコンプリートが処理できる形式でjsonに:typeを含めることができるようにterms_forを変更するにはどうすればよいですか?また、これをレンダリングするにはどうすればよいですか?

4

1 に答える 1

0

やりたいことをやる方法を見つけたので、自分の質問に答えようと思いました。便利なcollectメソッドを発見し、次のように関数を記述しました。

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
于 2013-02-07T04:17:47.280 に答える