2011-11-28 2 views
0

레일에 루비를 사용하여 스핑크스 범위에 약간의 문제가 있습니다.스핑크스 범위 조건 OR

문제는 :

sphinx_scope(:sphinx_for_current_user){ 
    { :conditions => {:user_id => "#{User.current.id }", :workflow_state => '!draft'}} 
    } 

그러나이 스핑크스 범위 이상 할이

된다

내가 스핑크스

scope :for_current_user, lambda{ 
    {:conditions => ["documents.user_id = ? OR documents.state != 'draft'", User.current.id]} 
    } 

내 가장 접근 방식을 생각하고이 범위를 수행하고 필요

"documents.user_id = 20 AND wor documents.user_id = 20 "난 정말

입니다 필요

하지만,"! = '초안'을 kflow_state 또는

이 어떤 도움이 잘! = '초안' "workflow_state 환영 받았다.

감사합니다. 당신이 스핑크스의 일환으로 쿼리를 제공 할 수없는, 스핑크스 생각에 현재

Document.search "(@user_id 20) | (@workflow_state !draft)", :match_mode => :extended 

:

답변

2

이에 대한 권리 쿼리 - - 범위없이 수동으로 구성해야하고, 이런 식으로 뭔가를 보일 수 있습니다 범위 전용 옵션. 따라서 쿼리가 잘되어야하지만 스코프는 옵션이 아닙니다.