Кто сказал, что алгебра ничего не стоит?
Два условия, которые вы указали в своем вопросе.
T <= DUE
T >= DUE - 8h
То же, что эти два условия.
DUE >= T
DUE <= T + 8h
Теперь вы можете применить это к запросу и / или области, не прибегая к гимнастике даты и времени в вашей базе данных.
named_scope :near_due, lambda {{ :conditions => ["due_date >= ? AND due_date <= ?", Time.now, Time.now + 8.hours] }}