フィールドが true でないすべてのレコードを検索したい。このための作業 AR 構文は次のとおりです。
Dog.where(:stray => [false, nil])
「真実ではない」を照会するためのより冗長な方法はありますか? どこでもこの mysql のニュアンスに対応しなければならないのは本当にうんざりです。
フィールドが true でないすべてのレコードを検索したい。このための作業 AR 構文は次のとおりです。
Dog.where(:stray => [false, nil])
「真実ではない」を照会するためのより冗長な方法はありますか? どこでもこの mysql のニュアンスに対応しなければならないのは本当にうんざりです。
名前付きスコープはどうですか?
scope :not_stray, where("stray IS NULL OR stray = false")
次に、以下を使用します。
Dog.not_stray
書けると思いますDog.where(Dog.arel_table[:stray].not_eq(true))
。
補足として、stray
データベースの列にデフォルト値を設定するか、少なくともその値を要求することをお勧めします。そうすれば、この回避策を実行する必要はありません。