Ruby on rails 如何根据rails中输入的用户日期,每周向用户发送电子邮件

Ruby on rails 如何根据rails中输入的用户日期,每周向用户发送电子邮件,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,rails上的新功能,目前正在使用windows,, 我有一个网页,用户插入姓名,日期和电子邮件。根据他的日期输入,我想给他发送电子邮件(如果@dop.date=date.now-7.days,则发送电子邮件)。我如何实现它??我想让系统得到用户日期,并检查它,如果用户插入日期,日期已为7天,然后向他发送电子邮件 这是我的模型: 类Dop

rails上的新功能,目前正在使用windows,, 我有一个网页,用户插入姓名,日期和电子邮件。根据他的日期输入,我想给他发送电子邮件(如果
@dop.date=date.now-7.days,则发送电子邮件)。我如何实现它??我想让系统得到用户日期,并检查它,如果用户插入日期,日期已为7天,然后向他发送电子邮件



这是我的模型: 类Dop 结束



使用cron计划重复的rake任务。如果您使用的是heroku,则可以将cron作为附加组件。但是,首先,当然,您需要编写rake任务——有关提示:


Long和short-rake是一个允许您定义各种任务并在这些任务之间建立依赖关系的文件。它非常适合于管理/清理工具,或者,在您的情况下,是应用程序实际执行之外的工具。

关于Rails中的后台任务,已经有很多问题了。搜索或谷歌“rails后台任务”您需要在发送电子邮件的rails应用程序外部运行定期任务。您可以将其设置为定期启动的自定义Rake任务,例如使用windows服务:。然后你每天运行一次,发送当天的所有电子邮件。这也是相关的,虽然不完全是你需要的解决方案,但它会教你一些有用的东西:我想用“if”语句来做这件事??比如:if@dop.date=date.now-7.days然后发送电子邮件??我想用if语句???我该怎么办???不想使用cronYes。“如果”是理解和征服宇宙的关键。如果爱因斯坦可以,他会使用Ruby的“如果”语句。看在上帝的份上,请理解你需要某种基于时间的作业调度程序来正确地完成它。不是所有migthy'if'语句,放在Rails控制器或模型的某个地方。用户根据他输入的日期插入日期,我想从他输入的日期开始再给他发送7天的电子邮件??这就是问题所在??
class UserMailer < ActionMailer::Base
  default from: "from@example.com"

  def welcome_email(dop)
    @dop = dop
    @url  = "http://example.com/login"
    mail(:to => dop.mail, :subject => "Welcome to My Awesome Site")
  end
end
 def create
    @dop = Dop.new(params[:dop])

    respond_to do |format|
      if @dop.save
        UserMailer.welcome_email(@dop).deliver
        format.html { redirect_to @dop, notice: 'Dop was successfully created.' }
        format.json { render json: @dop, status: :created, location: @dop }
      else
        format.html { render action: "new" }
        format.json { render json: @dop.errors, status: :unprocessable_entity }
      end
    end
  end