2015-10-06 44 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