次の行を使用したWebページでの作業:
Model.select(:column).where("column IS NOT NULL")
たとえば、ハッシュを使用するなど、これを行うためのよりRailsっぽい方法があるかどうか疑問に思っていました
Model.select(:column).where(column: !nil)
次の行を使用したWebページでの作業:
Model.select(:column).where("column IS NOT NULL")
たとえば、ハッシュを使用するなど、これを行うためのよりRailsっぽい方法があるかどうか疑問に思っていました
Model.select(:column).where(column: !nil)
Squeel gemでは!= nil 型の構文を使用できますが、レールはネイティブでは使用できません。
例: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)