Ich habe eine Google-Suche durchgeführt und ähnliche Fragen zu meiner Frage here gefunden, jedoch bin ich immer noch verloren, was die Lösung sein sollte. Mein Fall ist folgende:Schienen 4: model.where.not gibt keine Null Datensätze
Ich habe eine Datenbanktabelle Book
genannt, wo es category_id
(Fremdschlüssel zur Tabelle Category
) hat und author
(varchar 255). Ich muss diese Tabelle durch category_id
abfragen, aber den Namen des bestimmten Autors ausschließend. Beispiel: erhalten Sie alle Bücher für category_id = 10, aber ohne Bücher von Autor John Doe:
books = Book.where(category_id: 10).where.not(author: 'John Doe')
oder
books = Book.where(category_id: 10).where("author != ?", "John Doe")
Diese beiden Abfragen für mich arbeiten, außer auf jene Datensätze, deren Autor ist nil
. Ich muss diese Abfragen auch Datensätze zurückgeben, die nil
Autor haben.
haben Sie das versucht? books = Book.where (category_id: 10) .where ("Autor <>? OR author =?", "John Doe", null) – power
"NULL" ist unbekannt, daher müssen Sie es speziell nach @ angeben. Chrismandersons Antwort. –