1

在网页上工作,我使用了下一行:

Model.select(:column).where("column IS NOT NULL")

我想知道是否有更多的 Rails 方式来做到这一点,例如使用哈希

Model.select(:column).where(column: !nil)
4

3 回答 3

3

Squeel gem将允许您使用 != nil 类型语法,但本机 rails 不会。

例子:Model.where{column != nil}

于 2013-06-19T23:44:40.077 回答
1

我更喜欢使用范围,因为它更具可读性以及以后更易于管理(例如与其他范围合并)

class Model < ActiveRecord::Base
  scope :not_null, lambda { |column|
   {:select => column,
    :conditions => "#{column} NOT NULL"
    }
  }
end

然后使用

Model.not_null("column_name")
于 2013-06-20T01:07:58.733 回答
0

在 Rails 4 中,您可以这样做:

Model.select(:column).where.not(column: nil)
于 2013-06-20T05:37:43.210 回答