#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
Смотрите пример