8

フィールドが true でないすべてのレコードを検索したい。このための作業 AR 構文は次のとおりです。

Dog.where(:stray => [false, nil])

「真実ではない」を照会するためのより冗長な方法はありますか? どこでもこの mysql のニュアンスに対応しなければならないのは本当にうんざりです。

4

2 に答える 2

7

名前付きスコープはどうですか?

scope :not_stray, where("stray IS NULL OR stray = false")

次に、以下を使用します。

Dog.not_stray

于 2012-07-17T13:44:15.380 に答える
6

書けると思いますDog.where(Dog.arel_table[:stray].not_eq(true))

補足として、strayデータベースの列にデフォルト値を設定するか、少なくともその値を要求することをお勧めします。そうすれば、この回避策を実行する必要はありません。

于 2012-07-17T13:39:17.787 に答える