Ruby on rails 延迟作业不在rails 4中工作

Ruby on rails 延迟作业不在rails 4中工作,ruby-on-rails,Ruby On Rails,我添加了以下代码。但无法发送大量邮件 Gemfile gem 'delayed_job_active_record' 控制器 def send_news_letter @emails = Array.new if params[:newsletter].present? @newsletter = Newsletter.find(params[:newsletter].keys).first end if params[:st

我添加了以下代码。但无法发送大量邮件

Gemfile

gem 'delayed_job_active_record'
控制器

def send_news_letter  

    @emails = Array.new
      if params[:newsletter].present?
        @newsletter = Newsletter.find(params[:newsletter].keys).first
      end

      if params[:students].present?
        @emails = @emails + Student.all
        #raise @emails.inspect

      end

      if params[:teachers].present?
        @emails = @emails +Teacher.all
      end


    if params[:parents].present?
        @emails = @emails + Parent.all
      end

      UserMailer.delay.send_multiple_email(@emails,@newsletter)

      redirect_to newsletters_url, :notice => "Delivering Newsletter"
  end
梅勒

class UserMailer < ActionMailer::Base
  default from: "from@example.com"

  def send_multiple_email(emails,newsletter)
      @emails = emails
      #raise @emails.inspect
      @newsletter = newsletter
      mail(:to => @emails.map(&:email), subject: "Deliver")
  end

end
class UserMailer@emails.map(&:email),主题:“交付”)
终止
终止

实际上,它重定向了时事通讯的索引页。但是它不会发送邮件。

您可以做些什么来检查正在发生的事情:

  • 这是在开发中吗?作为初学者,我不知道如何在开发过程中同时运行
    bundle exec-rake作业
    rails作业
    。我必须停止服务器并执行rake任务,然后再次启动服务器

  • 询问数据库(例如使用
    rails c
    )以确定作业是否已保存到数据库。这样你就知道它已经准备好被执行了

  • 找不到任何数据库记录?延迟作业会创建自己的表,因此显然需要迁移数据库。按照Github使用命令:

    rails生成延迟作业:活动记录

    rakedb:migrate

  • 查看Railscasts关于如何使用它的一集