2012-01-28 48 views
0

我有一個搜索表單,用戶可以搜索文章內容並使用具有類別的選擇框將其縮小。當類別參數爲空時,它搜索一個空白的ID,但是我想在這種情況下返回任何類別。是否可以配置思維獅身人面像來完成,還是我必須將這個條件包含在我的控制器中?思維獅身人面像:當屬性查詢爲空時,如何返回任何屬性

條模型:

class Article < ActiveRecord::Base 
belongs_to :category 

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

SearchController:

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

回答

0

對於斯芬克斯,尼爾斯/空值被視爲0的,因此,如果沒有PARAMS [:類別]值通過給控制器通過,最好如果你不通過該屬性的過濾器。可能是這樣的:

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

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

這就是我所想象的,但是您的解決方案比我的方法更清潔! – luizbranco 2012-01-29 18:41:33