将另一个变量传递给rails3邮件接收方法

时间:2011-05-24 13:02:10

标签: ruby-on-rails ruby ruby-on-rails-3 email

我有一个mail_receiver,通过pop将我的电子邮件拉出来,然后将这条消息传递给我的DropBoxMailer:

DropBoxMailer.receive(email.pop)

我需要将变量传递给DropBoxMailer类,因此需要执行类似这样的操作

DropBoxMailer.receive(email.pop, another_var)

有谁知道如何正确地做到这一点?

因为接收只需要1个而不是2个参数吗?

感谢 瑞克

1 个答案:

答案 0 :(得分:0)

你可以这样做:

class DropBoxMailer < ActionMailer::Base

  # redefine ActionMailer.receive with an additional parameter
  def self.receive(raw_mail, email_account, another_var)
    ActiveSupport::Notifications.instrument("receive.action_mailer") do |payload|
      mail = Mail.new(raw_mail)
      set_payload_for_mail(payload, mail)
      new.receive(mail, another_var)
    end
  end

  def receive(mail, another_var)
    ..
  end
end

请参阅example