2010-05-30 1 views

답변

7
named_scope :scope_name, lambda { |category| 
    { 
     :conditions => ["id NOT IN (select foo_id from bar) AND foo.category = ?", category], 
     :order => 'RAND()', 
     :limit => 1 
    } 
    } 
4

답변보다 주석의 더 많은하지만 정말 맞지 않는

zed_oxff 공에 있습니다.

일을 단순화하고 DRY를 유지하려면 큰 이름이 아닌 분리 된 이름의 스코프를 정의하고 함께 연결하는 것이 좋습니다. 다음과 같이

named_scope :random_order, :order => 'RAND()' 
named_scope :limit, :lambda => { |limit| :limit => limit } 
named_scope :whatever, ... 

그래서 당신이 그들을 사용합니다 : 예를 들어

Person.random_order.limit(3).whatever