1

필자가 찾고있는 패싯의 범주가 여러 개 있습니다. 사용자가 특정 범주의 필터를 두 개 이상 클릭하면 흑점 결과가 모두 선택 사항 중 하나와 일치하는 모든 항목을 포함하도록 할 수 있습니다. . 시도 :흑점에서 "또는"기반 검색을 수행하려면 어떻게해야합니까?

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

하지만 전혀 작동하지 않는 것 같습니다. 나는 다중 선택 패싯을 적절한 방법으로 사용하지 않습니까? 아니면 완전히 다른 것을 시도해야합니까?

의견을 보내 주시면 감사하겠습니다.

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] 인 배열)

희망이 도움이

답변

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

있어야한다고 생각합니다.