ruby 上的新手,使用 windows xp 和 rails 3,我想每 7 天向用户发送电子邮件,持续 34 周,我有 usermailer,每 7 天发送电子邮件,我也想要34 周?
我有用户邮件程序向用户发送电子邮件,我已经定义了一种方法,每 7 天发送一次电子邮件,并使用 Windows 任务计划程序从批处理文件中调用它,
我还想知道用户现在在哪一周?
例如,用户在 4 月怀孕并在 6 月发情,然后会有一条欢迎消息,然后她怀孕的前 8 周不在我们的记录中,这意味着电子邮件将从第 9 周开始,因为 34 - 8 = 26周,因此用户将收到 26 封电子邮件(每 1 周 1 封电子邮件)。
我的模型:
class Dop < ActiveRecord::Base
attr_accessible :date, :mail, :name
validates_presence_of :name
validates_presence_of :mail
validates_uniqueness_of :mail
validates_format_of :mail, :with =>
%r{^(?:[_a-z0-9-]+)(\.[_a-z0-9-]+)*@([a-z0-9-]+)(\.[a-zA-Z0-9\-\.]
+)*(\.[a-z]{2,4})$}i
def self.send_mail
Dop.all.each do |dop|
UserMailer.welcome_email(dop).deliver if dop.date.to_time <= Time.now - 7.day
end
end
end
我的批处理文件:
echo rails run
cd c:\dop
rails r "Dop.send_mail"
echo done
pause
Dop 是指怀孕日期。