製品では、メソッドTime.zone.now
は常に同じ値をTime.now
返しますが、正しいシステム時刻を返します。
ここに一例があります:
バナー.rb
scope :active, where("'#{Time.zone.now}' between start_date and end_date")
このスコープのログ:
SELECT `banners`.* FROM `banners` WHERE ('2013-03-06 08:06:46 -0300' between start_date and end_date) AND ((`banners`.`store_id` = 1 AND `banners`.`spot_id` = 3 AND `banners`.`at_home` = 1))
Time.zone.now
常に2013-03-06 08:06:46 -0300 です
理由を知っている人はいますか?