在网页上工作我使用了下一行:
Model.select(:column).where("column IS NOT NULL")
我想知道是否有更多的Rails-ish方法来做这件事,例如使用哈希
Model.select(:column).where(column: !nil)
答案 0 :(得分:3)
Squeel gem允许你使用!= nil类型语法,但本机rails不会。
示例:Model.where{column != nil}
答案 1 :(得分:1)
我更愿意使用范围,因为它更易读,以及以后更容易管理(比如与其他范围合并)
class Model < ActiveRecord::Base
scope :not_null, lambda { |column|
{:select => column,
:conditions => "#{column} NOT NULL"
}
}
end
然后使用
Model.not_null("column_name")
答案 2 :(得分:0)
在Rails 4中你可以这样做:
Model.select(:column).where.not(column: nil)