2012-06-05 25 views
0

在我的項目中,我試圖根據用戶選擇顯示產品。用戶可以查看他們希望看到的哪個部門(女性,男性和孩子)和類別(服裝,上衣,T恤等)。爲此我使用複選框。如果用戶只檢查(選擇)女性部門,則會顯示屬於女性的所有產品。如果用戶檢查(選擇)女性部門和服裝類別,則將顯示屬於女性部門和服裝類別的產品。如果用戶選擇女性和男性部門和鞋類,則將顯示屬於女性和男性部門和鞋類的所有產品。爲了實現這一點,我使用solr(黑子寶石)。我的問題是,我們是否可以同時傳遞多個ID爲department_id和category_id的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 

如果可能的話,請告訴我該怎麼辦?請給我語法?請幫幫我。

更新

謝謝薩里爾的回答,但部門ID和類別ID的不是在這種情況下靜態的。我只會在用戶在運行時選擇時纔來。意味着category_id和department_id是通用的。如何實現這一點。我想要這樣的東西

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

請幫幫我。

回答

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