2010-02-28 68 views
2

如果我有以下named_scope導軌 - named_scopes - 有條件條件

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

有在軌的路要走,如果user_id是不是零隻適用這一條件?

回答

5

當然。您可以將任何其他Ruby代碼塊中的任何內容放在任何其他Ruby塊中,因此只需修改它即僅在user_id不爲零時才返回:conditions散列。這裏我用了一個簡單的三元條件:

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