1

我有一个使用 MailForm (plataformatec) 的联系人页面的无表格模型。我想使用 Sidekiq 将邮件发送移动到后台进程,但它依赖于给定模型的 id。

有谁知道如何将这封电子邮件发送到后台进程?

这是我的模型

class Contact < MailForm::Base 

  attribute :name,      :validate => true, :message => "aaa"
  attribute :email,     :validate => /\A([\w\.%\+\-]+)@([\w\-]+\.)+([\w]{2,})\z/i
  attribute :phone,     :validate => true
  attribute :nickname,  :captcha  => true

  def headers
    {
      :subject => "#{name}",
      :to => "test@test.com",
      :from => %("#{name}" <#{email}>)
    }
  end
end
4

1 回答 1

0

好吧,如果你不坚持它,你需要将所有数据传递给 Sidekiq。例如,您可以将其作为哈希传递。

class ContactMailFormWorker
  include Sidekiq::Worker

  def perform(attributes)
    contact = Contact.new attributes
    contact.deliver
  end
end

在您的控制器、模型或其他任何东西中

ContactMailFormWorker.perform_async contact.attributes
于 2013-06-12T19:37:52.120 回答