2014-03-12 4 views
0

나는 per the docs 나는 다음과 같은 오류 얻을 그러나ThinkingSphinx & Rails 3 - 속성 필터에서 OR 논리를 사용하는 방법?

with_delivery = "*, IF(delivery = 1 OR region_id IN (001,002,003), 1, 0) AS delivery" 
Listing.search 'ipod', 
       select: with_delivery, 
       with: { 'delivery' => 1 } 

으로 다음 검색을 수행하려고 :

ThinkingSphinx::SyntaxError: sphinxql: syntax error, unexpected IN, expecting ',' or ')' near 'IN (001... 

그것은 여기 IN 구문을 처리 할 수없는 스핑크스처럼 보인다, 그러나이 이해가되지 않습니다 이후 configs에서 이것을 사용합니다.

나는 과거에 이걸 어떻게 움직일 지 모르겠다. 어떤 도움이나 제안이라도 고맙게 생각하고있다. :)

답변

1
스핑크스의 IN() 당신이 그것을 사용하는 방법을 약간 다르게 동작

- first argument should be the attribute :

with_delivery = "*, IF(delivery = 1 OR IN(region_id, 1, 2, 3), 1, 0) AS delivery" 
Listing.search 'ipod', 
    select: with_delivery, 
    with: {delivery: 1} 
+0

가 아 ... 내가 년 전이 버그로 실행 및 함수에서 스핑크스에 대해 까맣게 잊고, 감사합니다 가볍게 두드리기! – Jason