ActiveRecord Abfrage: wo ein Feld nicht wahr ist

8

Ich möchte alle Datensätze finden, bei denen ein Feld nicht wahr ist. Die funktionierende AR-Syntax dafür lautet:

%Vor%

Gibt es eine weniger ausführliche Art, nach 'nicht wahr' zu fragen? Es ist wirklich nervig, überall auf diese mysql-Nuance einzugehen.

    
Gazza 17.07.2012, 13:34
quelle

2 Antworten

6

Ich denke, du kannst Dog.where(Dog.arel_table[:stray].not_eq(true)) schreiben.

Als Randnotiz empfehle ich Ihnen, einen Standardwert für die Spalte stray in der Datenbank festzulegen oder zumindest einen Wert dafür zu verlangen. Auf diese Weise müssten Sie diese Problemumgehung nicht machen.

    
Frost 17.07.2012, 13:39
quelle
7

Wie wäre es mit einem benannten Bereich?

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

Verwenden Sie dann:

Dog.not_stray

    
Tom L 17.07.2012 13:44
quelle