У меня есть метод, который проверяет пересечения дат для экземпляра моей модели.
def intersections
Reservation.where("daterange && ?", self.daterange)
end
Предположим, у меня есть резервирование r = Reservation.last
=> #<Reservation id: 3, home_id: 1, daterange: Sun, 10 Feb 2020...Fri, 21 Feb 2020>
r.intersections
Исключенный запрос:
SELECT "reservations".* FROM "reservations" WHERE (daterange && '[2020-02-10,2020-02-21)')
Фактический запрос:
SELECT "reservations".* FROM "reservations" WHERE (daterange && '2020-02-10','2020-02-11','2020-02-12','2020-02-13','2020-02-14','2020-02-15','2020-02-16','2020-02-17','2020-02-18','2020-02-19','2020-02-20')
схема:
create_table "reservations", force: :cascade do |t|
...
t.daterange "daterange"
end
Я перепробовал много вариантов, но кажется, что кастинг спрятан где-то глубоко внутри Active Record. Могу ли я просто отключить его для этого запроса?