2011-11-21 67 views
1

我使用Resque發送設計電子郵件。要做到這一點我設置:如何爲兩個不同的Devise模型使用兩套不同的郵件模板?

devise.rb

config.mailer = "Mailers::Devise::DeviseMailer" 

但我有2個色器件模型 - 用戶和客戶端。我想爲每個發送不同的設計郵件模板。

devise.rb說:「前四個配置值也可以在您的模型中直接設置。」和config.mailer是前四個之一,但我不知道如何直接在模型中設置它。

我該怎麼做?

回答

4

訣竅是設置:

devise.rb

config.scoped_views = true 

欲瞭解更多信息,請參閱:在色器件文檔 '配置視圖' 在https://github.com/plataformatec/devise

如果你有一個以上在您的應用程序中有一個角色(例如「用戶」和 「管理員」),您會注意到Devise對所有 角色使用相同的視圖。幸運的是,Devise提供了一種簡單的方法來定製視圖。所有 你需要做的是在 「config/initializers/devise.rb」中設置「config.scoped_views = true」。

這樣做後,您將能夠看到基於角色 「users/sessions/new」和「admins/sessions/new」的角色。如果在範圍內沒有找到 的視圖,Devise將使用 「devise/sessions/new」的默認視圖。您還可以使用發電機來產生 範圍的觀點:

8

我已經創建了一個示例應用程序,這是否:

https://github.com/rodrigoflores/multiple-mailer

請注意https://github.com/rodrigoflores/multiple-mailer/blob/master/app/models/user.rb#L6和應用程序/型號類似的行/admin.rb,您可以在其中爲每個設計模型選擇郵件程序。您還必須閱讀Devise郵件程序(https://github.com/plataformatec/devise/blob/master/app/mailers/devise/mailer.rb)源代碼以實現相同的方法。最後,寫下您的郵件的意見。

相關問題