передача другой переменной в метод получения почты rails3

#ruby-on-rails #ruby #ruby-on-rails-3 #email

#ruby-on-rails #ruby #ruby-on-rails-3 #Адрес электронной почты

Вопрос:

У меня есть mail_receiver, который получает мою электронную почту через pop, а затем передает это сообщение моему DropBoxMailer следующим образом :

 DropBoxMailer.receive(email.pop)
  

Мне нужно передать переменную в класс DropBoxMailer, поэтому нужно сделать что-то вроде этого

 DropBoxMailer.receive(email.pop, another_var)
  

Кто-нибудь знает, как это сделать правильно?

поскольку receive ожидает только 1, а не 2 параметра?

спасибо Рику

Ответ №1:

Вы можете сделать вот так:

 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
  

Смотрите пример