Sidekiq与tabless模型

时间:2013-06-12 18:50:33

标签: ruby-on-rails ruby model sidekiq

我有一个使用MailForm(plataformatec)的联系页面的无表格模型。我想使用Sidekiq将邮件发送到后台进程,但它依赖于给定Model的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

1 个答案:

答案 0 :(得分:0)

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

class ContactMailFormWorker
  include Sidekiq::Worker

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

在您的控制器,型号或其他

ContactMailFormWorker.perform_async contact.attributes