我使用Resque发送Devise电子邮件。为此,我设置:
devise.rb
config.mailer = "Mailers::Devise::DeviseMailer"
但我有2个设计模型 - 用户和客户端。我想为每个发送不同的设计邮件模板。
devise.rb说"前四个配置值也可以在你的模型中直接设置。"和config.mailer是前四个中的一个,但是我不知道怎么做直接在模型中设置它。
我该怎么做?
答案 0 :(得分:8)
我创建了一个示例应用程序来执行此操作:
https://github.com/rodrigoflores/multiple-mailer
请注意https://github.com/rodrigoflores/multiple-mailer/blob/master/app/models/user.rb#L6以及app / models / admin.rb上的类似行,您可以在其中为每个设计模型选择邮件。您还必须阅读Devise邮件程序(https://github.com/plataformatec/devise/blob/master/app/mailers/devise/mailer.rb)源代码以实现相同的方法。最后,为邮件编写您的观点。
答案 1 :(得分:4)
诀窍是设置:
devise.rb
config.scoped_views = true
有关详情,请参阅https://github.com/plataformatec/devise
的设计文档中的“配置视图”如果您的应用程序中有多个角色(例如“用户”和 “管理员”),您会注意到Devise对所有人使用相同的视图 角色。幸运的是,Devise提供了一种自定义视图的简便方法。所有 你需要做的是在里面设置“config.scoped_views = true” “配置/初始化/ devise.rb”。
执行此操作后,您将能够根据角色获得视图 “users / sessions / new”和“admins / sessions / new”。如果没有找到视图 在范围内,Devise将使用默认视图 “色器件/会话/新”。您也可以使用生成器生成 范围观点: