2010-02-28 6 views
2

나는 다음과 같은 named_scope레일 - named_scopes - 조건 조건

named_scope :scope_by_user_id, lambda {|user_id| {:conditions => ["comments.user_id = ?", user_id]}} 

USER_ID가 nil이 아닌 경우에만 해당 조건을 적용하는 레일의 방법이있는 경우?

답변

5

확실히. 다른 루비 블록에서 사용하는 람다에 대해서는 무엇이든 넣을 수 있으므로 user_id가 nil이 아닌 경우에만 :conditions 해시를 반환하도록 수정하십시오. 여기에 간단한 삼항 조건부를 사용했습니다 :

named_scope :scope_by_user_id, lambda {|user_id| 
    user_id.nil? ? {} : { :conditions => ["comments.user_id = ?", user_id] } 
}