Ich habe ein Modell so geändert, dass es ein neues Feld enthält, z.
field :url, :type => String
Ich verwende activeadmin. Wenn ich also einen neuen Eintrag erstelle, @model.url
ist dieser leer und in Einträgen, die vor dem Ändern des Schemas erstellt wurden, ist er gleich Null. Wie wähle ich beide aus? Ich habe versucht:
# Returns nils and strings
Model.where(:url.ne => "").count
# Returns strings and ""
Model.where(:url.ne => nil).count
# Returns strings, nils and ""
Model.where(:url.ne => ["", nil]).count
Wenn es für diese Art von Szenario eine bewährte Methode gibt, lassen Sie es mich bitte wissen.
ruby-on-rails
mongoid
Methode der Aktion
quelle
quelle
Model.where(:field.ne=>nil)
Versuchen
Model.where(:url.ne => "", :url.exists => true).count
Siehe Mongoide Symboloperatoren
quelle
Versuchen:
Model.nin(url: ['', nil])
quelle