如果不是,则获取ActiveRecords

时间:2010-06-02 15:41:29

标签: ruby-on-rails ruby activerecord null

我希望能够在user_id不为null的表中收集所有记录。 这就是我所拥有的,但它似乎没有起作用(即使我已经在一个单独的项目中工作):

named_scope :all_registered, :conditions => ["user_id != ?", nil]

3 个答案:

答案 0 :(得分:8)

SQL有一个特定的运算符来检查NULL:IS NULLIS NOT NULL

named_scope :all_registered, :conditions => ["user_id IS NOT NULL"]

答案 1 :(得分:1)

这应该有效:

named_scope :all_registered, :conditions => "user_id IS NOT NULL"

答案 2 :(得分:0)

在Rails 4中,您可以使用 NOT条件,请参阅Active Record Query Interface

e.g:

User.where.not(id: nil)

或作为范围:

scope :all_registered, -> { where.not(user_id: nil) }