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]作为一个数组)

希望这有助于。