Sie müssen nur den Stundenteil aus created_at extrahieren, indem Sie date_part/extract-Funktion von PostgreSQL .
SELECT EXTRACT(HOUR FROM TIMESTAMP '2001-02-16 20:38:40');
Result: 20
Zum Beispiel so etwas:
Purchases.where(["EXTRACT(HOUR FROM created_at) BETWEEN ? AND ?", 13, 14])