如果我有以下named_scope
named_scope :scope_by_user_id, lambda {|user_id| {:conditions => ["comments.user_id = ?", user_id]}}
如果user_id不是nil,那么在rails中是否只允许应用该条件?
答案 0 :(得分:5)
不确定。您可以在lambda中放置任何其他Ruby块中的任何内容,因此只有在user_id不为nil时才修改它以返回:conditions
哈希。在这里,我使用了一个简单的三元条件:
named_scope :scope_by_user_id, lambda {|user_id|
user_id.nil? ? {} : { :conditions => ["comments.user_id = ?", user_id] }
}