2011-11-28 79 views
0

我卡在這裏與在軌道上使用紅寶石獅身人面像的範圍的小問題。獅身人面像的範圍與OR

的問題是:

我需要做此範圍內的思維獅身人面像

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

我最做法是:

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

但這獅身人面像範圍之上做的是一個

「documents.user_id = 20 AND wor kflow_state!= '草案'」

但是,我真正需要的是

「documents.user_id = 20或workflow_state!= '草案'」

任何幫助是非常歡迎。

謝謝。需要手動構造,而且可能是這個樣子

回答

2

這樣做的正確的查詢 - - 無範圍:

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

目前在思考獅身人面像,你不能提供查詢作爲獅身人面像的一部分僅限於範圍的選項。所以,雖然查詢應該沒問題,但範圍不是一個選項。