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 に答える