如何编写搜索方法代码,一次搜索多个ID

时间:2012-06-05 02:41:17

标签: ruby-on-rails-3 solr sunspot-rails sunspot-solr

在我的项目中,我试图根据用户选择显示产品。用户可以查看他们希望看到的部门(女士,男士和儿童)和类别(衣服,上衣,T恤等)。对于这个使用复选框。如果用户仅检查(选择)女性部门,则将显示属于女性的所有产品。如果用户检查(选择)女性部门和服装类别,则将显示属于女性部门和服装类别的产品。如果用户同时选择男女部门和鞋类,则将显示属于女性和男性部门和鞋类的所有产品。为了达到这个目的,使用solr(太阳黑子宝石)。我的问题是我们可以同时为department_id和category_id传递多个id。

例如可以

@search_res=ProductDetail.search do
  with :department_id, 1,2,3                  
  with :category_id, 1,2,3,4, etc (may be present or absent)           
end

如果有可能请告诉我该怎么办?请给我语法?请帮我。

更新

感谢Salil的回答,但在这种情况下,部门ID和类别ID不是静态的。只有当用户在运行时选择时,我才会来。表示category_id和department_id是通用的。如何实现这一目标。我想要这样的东西

@search_res=ProductDetail.search do
  with :department_id, params[:deptid]                  
  with :category_id,   params[:catid]         
end

请帮帮我。

1 个答案:

答案 0 :(得分:1)

这是:

@search_res=ProductDetail.search do
  all_of do
    with :department_id, [1,2,3]                  
    with :category_id, [nil,1,2,3,4] # I am not sure - but category_id nil should be to denote its absence 
  end
end

参考更多信息: sunspot readme