Я создаю приложение для направляющих, которое сохранит открытие и заключительные часы для бизнеса. Первоначально, я думал о простом использовании типа данных text и разрешении этому быть свободной формой:
"Monday to Friday 9am to 5pm
Saturday 11am to 4pm
Closed Sundays"
Но, требования изменились, и я должен проверить часы по текущей дате и время и отобразить "Открытое" или "Закрытый" в представлении. Что-то как:
class Business < ActiveRecord::Base
def open?
# Something like ...
Time.now > open_time && Time.now < close_time
end
end
Таким образом, каков был бы лучший способ заняться этим с точки зрения хранения часов в течение каждого дня недели? Если Бизнес просто has_many: open_blocks (или безотносительно), которые имеют открытые и близкие времена? Я должен просто сохранить день как строку?
Оформить заказ эти библиотеки для обработки повторяющихся дат.
После настройки повторения в объекте скажем office_hours
, в ice_cube
вы можете запросить его как:
office_hours.occurring_at?(Time.now)