Ich habe folgende AR-Abfrage, die eine Anordnung der Zimmer (die Zimmer, die in dem Zeitraum nicht verfügbar sind gegeben) zurückgibt:Aktive Aufzeichnung alle Instanz erhalten, die Bedingung nicht übereinstimmen
rooms = Room.joins(:bookings).where("(bookings.start_date >= ? AND bookings.start_date <= ?) OR (bookings.end_date >= ? AND bookings.end_date <= ?) OR (bookings.start_date <= ? AND bookings.end_date >= ?)", from, to, from, to, from, to)
Ich möchte ändern diese Abfrage, so dass es alle anderen Räume zurückgibt; das sind diejenigen, die im angeforderten Zeitraum verfügbar sind. Das richtige Ergebnis ergibt sich aus folgendem:
Aber ich möchte direkt die verfügbaren Räume in einer einzigen Abfrage bekommen. Ich habe bereits eine .not aber es tut mir das richtige Ergebnis geben:
rooms = Room.joins(:bookings).where.not("(bookings.start_date >= ? AND bookings.start_date <= ?) OR (bookings.end_date >= ? AND bookings.end_date <= ?) OR (bookings.start_date <= ? AND bookings.end_date >= ?)", from, to, from, to, from, to)
Wie soll ich die Abfrage ändern?