Rails 将 deliver_later 与 sidekiq 一起使用时,邮件程序会忽略附件

Rails mailer ignores attachment when using deliver_later with sidekiq

什么有效

我当前的 user_controller.rb 代码:

def create
  u = User.new(create_user_params)
  .
  .
  .
  if u.save
    WelcomeMailer.new_customer(u).deliver_now
    render json: u.as_json(except: [:password_digest]), status: 201
  else
    respond_with u
  end
end

我的 Mailer 的代码是:

def new_customer(user:)
  @user = user
  attachments["AGB.pdf"] = File.read("#{Rails.root}/app/assets/files/AGB.pdf")
  mail to: @user.email, subject: "blaa blubb"
end

它的工作就像一个魅力。

已发送带附件的电子邮件。

问题:

如果我改变

WelcomeMailer.new_customer(u).deliver_now

WelcomeMailer.new_customer(u).deliver_later

我收到了邮件,但没有附件。

我使用 sidekiq 作为作业队列 (config/application.rb):

config.active_job.queue_adapter = :sidekiq

好的...

菜鸟回答:

你必须重新启动 sidekiq-queues...几周后现在就这样做了,它就像一个魅力hittingmyself