Я был удивлен, увидев, что область действия, которая работает локально, не отвечает правильно на героку. Геемку определяет область раз и навсегда? Есть ли лучший способ написать эти области?Объем модели работает локально, но не на Heroku
# Offset date for early morning hours
if Time.now.hour < 4
scope :upcoming, lambda { between(Date.tomorrow, Date.tomorrow+4.days) }
scope :tomorrow, lambda { on(Date.today) }
scope :today, lambda { on(Date.yesterday).not_over }
else
scope :upcoming, lambda { between(Date.tomorrow+1.day, Date.tomorrow+5.days) }
scope :tomorrow, lambda { on(Date.tomorrow) }
scope :today, lambda { on(Date.today).not_over }
end
Он проверяет, находится ли время между 12:00 и 4:00. Если да, то он определяет :today
, :tomorrow
и :upcoming
, начиная со вчерашнего дня. Если нет, он определяет области действия.
Это так, когда пользователь ищет предстоящее событие, которое «сегодня», а утром в пятницу в пятницу вечером он/она увидит события, которые продолжаются до 4 утра. Например, клуб, который еще не закрыт.
Heroku определяет мои области применения инструкцией else независимо от времени.