1

我有幾個方面我正在尋找和我想要的一個,當用戶點擊該特定類別中的多個過濾器時,要使太陽黑子返回的結果包含匹配任一選項的所有內容,而不僅僅是。我試過這個:如何在太陽黑子中進行基於「或」的搜索?

@search = ProfileSearch.new(search_params) do 
    facet_restriction = with(:grad_year,params[:grad_year]) 
    facet(:grad_year, :exclude => facet_restriction) 
end 

但這似乎並沒有工作呢?我是不是以適當的方式使用多重選擇方面,還是應該看看完全不同的東西?

任何想法將不勝感激。

回答

1

我覺得應該是

@search = ProfileSearch.search(search_params) do 
    facet_restriction = with(:grad_year,params[:grad_year]) 
    facet(:grad_year, :exclude => facet_restriction) 
end 
+0

我試過了,它給了一個「頁面有重定向循環」類錯誤。我理解這個問題的很多問題是,搜索模型有很多方法可以做各種事情。就像當你調用new時,它通過initialize方法運行它,後面還有另一種方法,我認爲這是實際的搜索。我將不得不查看它的執行流程並獲得更好的理解,但是感謝您的建議 – user3579987

0

我做這樣的事情:

grad_year_exclusions = [] 
    if params[:grad_year].present? 
    grad_year_exclusions << with(:grad_year).any_of(params[:grad_year]) 
    end 
    grad_year_exclusions.compact! 
    grad_year_exclusions = nil if grad_year_exclusions.empty? 
    facet(:grad_year, exclude: grad_year_exclusions) 

(PARAMS [:grad_year]作爲一個數組)

希望這有助於。