在网页上工作,我使用了下一行:
Model.select(:column).where("column IS NOT NULL")
我想知道是否有更多的 Rails 方式来做到这一点,例如使用哈希
Model.select(:column).where(column: !nil)
在网页上工作,我使用了下一行:
Model.select(:column).where("column IS NOT NULL")
我想知道是否有更多的 Rails 方式来做到这一点,例如使用哈希
Model.select(:column).where(column: !nil)
Squeel gem将允许您使用 != nil 类型语法,但本机 rails 不会。
例子:Model.where{column != nil}
我更喜欢使用范围,因为它更具可读性以及以后更易于管理(例如与其他范围合并)
class Model < ActiveRecord::Base
scope :not_null, lambda { |column|
{:select => column,
:conditions => "#{column} NOT NULL"
}
}
end
然后使用
Model.not_null("column_name")
在 Rails 4 中,您可以这样做:
Model.select(:column).where.not(column: nil)