Rails - named_scopes - 条件条件

时间:2010-02-28 22:02:52

标签: ruby-on-rails

如果我有以下named_scope

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

如果user_id不是nil,那么在rails中是否只允许应用该条件?

1 个答案:

答案 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] }
}