我正在构建一个使用动作邮件的rails应用程序。 我希望能够在特定活动开始前2小时发送电子邮件。
def notification(user, event)
@user = user
@event = event
@delivery_time = @event.start_at - INTERVAL '2 hour'
mail( to: @user.email,
subject: "Upcoming event")
end
event.start_at是时间戳格式。
是否可以
event.start_at - INTERVAL - '2 hours'
我知道你可以在postgresql中做类似的事情
timestamp '2001-09-28 23:00' - interval '23 hours'
根据 Postgresql。
答案 0 :(得分:0)
就像他们评论中提到的sundayAdefila一样,你可以这样做:
event.start_at - 2.hours
要查找在接下来的2小时内开始的活动,您可以将ActiveRecord
查询写为
Event.where(start_at: Time.now..Time.now + 2.hours)
上述更好的方法(如下面的评论所示):
Event.where(start_at: Time.now..2.hours.from_now)
将转换为SQL查询,如:
SELECT `events`.* FROM `events` WHERE (`events`.`start_at` BETWEEN '2016-05-24 11:01:34' AND '2016-05-24 13:01:34')