【发布时间】:2013-12-01 16:09:49
【问题描述】:
我希望能够跨不同时区测试调度程序组件的行为。然而,触发预定行为的功能在 postgres 中使用基于时间的查询:
例如
# find reminders which have not been sent for "today" in the local date
Schedule.where('evening_reminder_last_sent_on_local_date !=
DATE( NOW() AT TIME ZONE time_zone )')
我希望能够在 RSpec 中测试此行为并确保它在一天中正常播放,并且如果我在 12 月 25 日凌晨 1 点 UTC 向日本用户发送提醒,然后在 10 点 UTC,他们的提醒“今天”将显示为 not 已发送(因为在日本是第二天早上 7 点左右)。
但是,为了做到这一点,我需要能够在 postgres 中设置日期时间。这可能吗?
请注意...这不是要破坏 Rails 的时间
挑战在于不要在 Rails 中浪费时间——我知道该怎么做。问题是如何在 Postgres 中设置时间。
【问题讨论】:
标签: ruby-on-rails postgresql rspec