我的軟件爲用戶發送電子郵件。我想向他們展示這些電子郵件在發送之前的樣子。但是,通過ActionMailer約定,整個模板都在一個文件中。這意味着HTML,頭部,身體標籤等。任何人都可以想出一個好方法,讓我的用戶預覽我發送的電子郵件的樣子是什麼樣的?在Ruby on Rails中向我的用戶展示電子郵件模板預覽的最佳方式是什麼?
謝謝!
我的軟件爲用戶發送電子郵件。我想向他們展示這些電子郵件在發送之前的樣子。但是,通過ActionMailer約定,整個模板都在一個文件中。這意味着HTML,頭部,身體標籤等。任何人都可以想出一個好方法,讓我的用戶預覽我發送的電子郵件的樣子是什麼樣的?在Ruby on Rails中向我的用戶展示電子郵件模板預覽的最佳方式是什麼?
謝謝!
我有同樣的問題。我使用我發送的相關模型構建了顯示器,而不是在郵件程序中。我能夠提供樣本數據或實時數據以顯示給用戶。 實際發送它時,我在郵件視圖中提供了完全相同的東西
編輯: 我很抱歉提供廢話變量名稱。我不確定我可以明確地談論它們:)
可以說我有一個名爲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 }%>
它有點複雜,但它是基於一個模板系統。通過內聯無處不在,我可以使用相同的代碼來執行許多不同的功能,包括預覽和發送。我喜歡這個,因爲它變成了所見即所得。沒有額外的代碼或功能,可能會在電子郵件中產生潛在的輸出。如果它在一個區域工作,它將在另一個區域工作。加上保持乾爽意味着我不會忘記修改副本(我會經常這樣做,嘿嘿)。
有趣的...所以在你的ActionMailer模型,你有這樣的事情@body [:家居] = AssociatedModel.generate_email,然後你的ActionMailer觀點只是@everything? – Tony 2009-11-09 22:25:40
爲您編輯原始答案,以便我可以使用代碼功能:) – cgr 2009-11-10 07:01:32