Когда active
имеет только два состояния - true
и false
, и когда это состояние зависит только от того, прошел ли auction_end_time
, тогда вам вообще не нужен этот столбец.
Кому найти все active
аукцион, вы можете использовать область видимости, подобную этой:
scope :active, -> { where('auction_end_time > ?', Time.new.utc)
, и для запроса, если аукцион все еще active
, вы можете использовать метод, подобный этому:
def active?
auction_end_time > Time.new.utc
end
Другие подходы - такие как задания CRON или фоновый работник - не будут такими надежными, потому что они могут работать на несколько секунд слишком поздно или вообще не работать, если система подстилающих устройств не работает.