Это действительно распространенная ошибка.Как вы написали, в дате, используемой областью, будет дата, которая была при загрузке кода.Если бы вы запустили это в рабочей среде, где код перезагружался только при перезапуске приложения (в отличие от разработки, когда он перезагружался при каждом запросе), вы получите правильные результаты в день перезапуска приложения, но на следующий день результатыбудет на один день, на следующий день - на 2 дня и т. д.
Правильный способ определения такой области:
scope :active_drawings, lambda { where('start_date <= ? AND end_date >= ?', Date.today, Date.today)}
. Лямбда гарантирует, что эти даты оцениваются каждый раз.сфера используется.