2012-01-28 14 views
0

ユーザーは記事コンテンツを検索し、カテゴリの選択ボックスを使用して絞り込むことができる検索フォームがあります。カテゴリparamが空白の場合、空白のidが検索されますが、その場合はカテゴリを返したいと思います。それを達成するためにThinking Sphinxを設定することは可能ですか、コントローラにこの条件を含める必要がありますか? 【:カテゴリ]値はコントローラに渡され、Thinking Sphinx:属性クエリが空白のときに属性を返す方法

文書モデル:

class Article < ActiveRecord::Base 
belongs_to :category 

define_index do 
    indexes :name 
    indexes content 
    has category(:id), :as => :category_id 
end 
... 
end 

SearchControllerないparamsはもしようスフィンクスについて

@articles = Article.search params[:q], :with => {:category_id => params[:category]} 

答えて

0

は、NILS/NULL値は、0として扱われあなたがその属性のフィルターを通過しないのが最善です。おそらく:

filters = {} 
filters[:category_id] = params[:category] if params[:category].present? 

@articles = Article.search params[:q], :with => filters 
+0

これは私が想像したものですが、あなたのソリューションは私のものよりもクリーナーです! – luizbranco

関連する問題