2009-11-09 44 views

回答

1

我有同樣的問題。我使用我發送的相關模型構建了顯示器,而不是在郵件程序中。我能夠提供樣本數據或實時數據以顯示給用戶。 實際發送它時,我在郵件視圖中提供了完全相同的東西

編輯: 我很抱歉提供廢話變量名稱。我不確定我可以明確地談論它們:)

可以說我有一個名爲foo(status,bar)的BarMailer函數 其中status是測試電子郵件或實時電子郵件,bar是我的關聯模型。

我稱爲deliver_foo(「測試」,巴)

deliver_foo發送出多部分消息,以便對予render_message和沿我需要變量傳遞每個部分。例如:

p.body = render_message('bar_html', :bar => bar, :other_data => bar.other_data) 

左右,即render_message是跟它專門使用bar_html視圖(I也有明文bar_text)。

這是我bar_html視圖的內容:

<%=render :inline => @bar.some_parent.some_other_model.html, :locals => {:other_data => @other_data, :time => Time.now, :bar => @bar }%> 

它有點複雜,但它是基於一個模板系統。通過內聯無處不在,我可以使用相同的代碼來執行許多不同的功能,包括預覽和發送。我喜歡這個,因爲它變成了所見即所得。沒有額外的代碼或功能,可能會在電子郵件中產生潛在的輸出。如果它在一個區域工作,它將在另一個區域工作。加上保持乾爽意味着我不會忘記修改副本(我會經常這樣做,嘿嘿)。

+0

有趣的...所以在你的ActionMailer模型,你有這樣的事情@body [:家居] = AssociatedModel.generate_email,然後你的ActionMailer觀點只是@everything? – Tony 2009-11-09 22:25:40

+0

爲您編輯原始答案,以便我可以使用代碼功能:) – cgr 2009-11-10 07:01:32

相關問題