2015-10-06 47 views
1

我已經配置我的模型通過太陽黑子被搜索:軌道4黑子用枚舉其中條件

enum status: [ :draft, :unreviewed, :reviewed, :publish, :disable, :reject ] 

searchable do 
    text :name, :boost => 5 
    text :description 
    integer :status 
    time :created_at 
end 

和在控制器:

@search = Product.search do 
    fulltext params[:search] 
    with :status, 3 
    order_by :created_at, :desc 
    paginate :page => params[:page], :per_page => 10 
end 

曾經是過濾器產品具有狀態這條線with :status, 3publish這是我使用rails enum設置的。但我沒有結果。

我錯過了什麼?感謝

回答

1

只是在你的控制器

@search = Product.search do 
    fulltext params[:search] 
    with(:status).equal_to(3) 
    order_by :created_at, :desc 
    paginate :page => params[:page], :per_page => 10 
end 

耙太陽黑子一個小的變化:重新索引

重新索引數據

這些不同類型的你可以使用

with(:blog_id, 1) 
with(:blog_id).equal_to(1) 

with(:average_rating, 3.0..5.0) 
with(:average_rating).between(3.0..5.0) 

with(:category_ids, [1, 3, 5]) 
with(:category_ids).any_of([1, 3, 5]) 
+0

答案只是使用不同的語法。這是一個正確的方法http://stackoverflow.com/questions/29161105/how-do-i-scope-enums-in-rails-using-sunspot – Francisco