У меня есть такая область действия
scope :old, joins(:group).where("`users`.`created_at` <=
DATE_SUB(?, INTERVAL `groups`.`check_minutes` MINUTE)", Time.now)
Я заглушка Time.now
следующим образом
Time.stub!(:now).and_return(Time.parse("1 JUL 2010"))
Я хочу, чтобы область действия old
использовала эту заглушку Time.now
, но она использует текущее время.
Полагаю, рельсы создают области при первой загрузке модели (например, при загрузке spec_helper.rb
), поэтому после загрузки области мы заглушаем Time.now.Это правда?
Итак, я нашел два решения:
- Перезагрузить модель пользователя после заглушки Time.now и перед использованием scope
- Использовать обычный метод вместо заглушки какэто
У вас есть более элегантные решения?