2017-12-11 5 views
0

Ich habe folgende Enum in meinem Modellmit Active Enum Abfrage

enum email_reminders: { disabled_reminders: 0, default_reminders: 1, friendly_reminders: 2 } 

Wenn ich tun:

Company.where.not(email_reminders: :disabled_reminders).to_sql 

ich dieses Ergebnis:

=> "SELECT \"companies\".* FROM \"companies\" WHERE (\"companies\".\"email_reminders\" != NULL)" 

Wenn ich tun:

Company.where(email_reminders: [:default_reminders, :friendly_reminders]).to_sql 

ich

=> "SELECT \"companies\".* FROM \"companies\" WHERE \"companies\".\"email_reminders\" IN (NULL, NULL)" 

Gemäß der Dokumentation sollte gut funktionieren? Ich benutze ActiveRecord 4.2.6

Antwort

0

Sie haben vielleicht die Rails 5 documentation for ActiveRecord::Enum mit der Absicht gesehen, die Rails 4.2.6 documentation for ActiveRecord::Enum zu verwenden. In Rails 4.2.6 lautet der Dokumentstatus:

Wo Bedingungen für ein Enum-Attribut den Ordnungswert einer Aufzählung verwenden müssen.

und zeigen keine Beispiele dafür, was Sie tun, während in den Schienen 5 docs, dass Aussage über den Ordnungswert erfordern fehlt und sie die Beispiele zeigen, tun Sie verwenden.