2012-02-03 2 views
1

레일스 프로젝트에서 Sunspot 1.3.0을 사용하고 있습니다.Sunspot.search 블록 내의 정확한 구문은 category_ids의 배열과 일치하는 게시물을 반환합니다.

Post.search do 
    with(:category_ids, [1, 3, 5]) 
end 

은의 범주와 게시물을 일치 1, 3, 또는 5

정확히 1, 3 5의 범주 게시물에 맞는 올바른 구문은 무엇입니까?

예.
category_ids가 = [1,3]와 일치하지 않는다 - -
category_ids가 = [1] 포스트
category_ids의 = 일치하지 않는 [1, 3, 5] - 매치
category_ids = 1을 수행 , 3, 5, 7] -

내가

with(:category_ids).equal_to([1,3,5]) 

을 시도 일치하지만이 나에게 다음과 같은 오류 제공하지 않습니다에 대한 정의되지 않은 메서드`GSUB를 '[ "1", "3", " 5 "] : 배열

답변

1

그래서이 문제를 해결하기 위해 "all_of"를 사용했습니다. 경우
는, 이것은 내가 한 일을 다른 사람이다하는 데 도움이 :

with(:category_ids).all_of([1,3,5]) 

이, 예를 들어 별도의 범주로도 게시물 [1,3,5]의 게시물 카테고리와 일치하지만 것 [, 1,3,5, ]도 일치합니다.

일단 Sunspot이 결과 집합을 반환하면 정확히 일치하지 않는 게시물을 필터링했습니다.

이 작업은 내가 원하는 작업이지만,이 작업을 수행하는보다 간결한 방법이 있었으면합니다.