1
是否有可能只處理特定郵件的郵件觀察器?是否有可能只處理特定郵件的郵件觀察者?
因此,我們可能會有不同的郵件發送者 - 郵件觀察者對在發送郵件後一起處理任務。
例如,一個郵件觀察員可以刪除臨時生成的附加文件,而另一個可以記錄發送特定類型郵件(特定郵件程序)的消息。
如果有可能,你能說明我們如何使郵件程序和郵件觀察程序類之間的「連接」起作用嗎?
非常感謝
是否有可能只處理特定郵件的郵件觀察器?是否有可能只處理特定郵件的郵件觀察者?
因此,我們可能會有不同的郵件發送者 - 郵件觀察者對在發送郵件後一起處理任務。
例如,一個郵件觀察員可以刪除臨時生成的附加文件,而另一個可以記錄發送特定類型郵件(特定郵件程序)的消息。
如果有可能,你能說明我們如何使郵件程序和郵件觀察程序類之間的「連接」起作用嗎?
非常感謝
我發現了一些例子,告訴將此放入任何文件中的配置/初始化/:
ActionMailer::Base.register_observer(MyMailObserver)
然而,這是一個全球性的設置。
我在挖掘到api後發現瞭解決方案。 我意識到register_observer()是一個類的方法,所以我試圖把它在我的應用程序/郵件/ report_mailer.rb類:
class ReportMailer < ActionMailer::Base
default from: "[email protected]_domaine.com"
def monthly_report(user, report_name, file_name, file_path)
@user = user
@report_name = report_name
attachments[file_name] = File.read(file_path)
mail(:to => user.email, :subject => "Generated report for #{report_name} (automatic message)")
end
end
我設法與我的觀察者的初始化應用它我郵件中配置/初始化/ my_mailer_observer_initializer.rb:
ReportMailer.register_observer(MyMailObserver)
所以我和我的ReportMailer類,沒有其他梅勒類的關係得到了MyMailerObserver。
這不適合我。所有郵件程序都會觸發觀察者。 https://stackoverflow.com/questions/44902707/register-an-observer-to-only-one-mailer – 2017-07-04 10:00:09