如果我有以下named_scope
named_scope :scope_by_user_id, lambda {|user_id| {:conditions => ["comments.user_id = ?", user_id]}}
rails 有没有办法只在 user_id 不为零时应用该条件?
最佳答案
当然。您可以在 lambda 中放入任何其他 Ruby block 中的任何内容,因此只需修改它以仅在 user_id 不为零时返回 :conditions
哈希值。这里我使用了一个简单的三元条件:
named_scope :scope_by_user_id, lambda {|user_id|
user_id.nil? ? {} : { :conditions => ["comments.user_id = ?", user_id] }
}
关于ruby-on-rails - Rails - name_scopes - 条件条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2352860/