【发布时间】:2011-09-10 09:29:42
【问题描述】:
背景:在我们的应用程序中,我们经常让销售代表使用销售人员的计算机为我们的客户进行设置(客户在我们设置时通常无法访问他们的电子邮件)。因此,我们正在考虑为销售代表的电子邮件地址在设计注册表单中添加一个字段,并让确认链接也转到该电子邮件地址。
问题:有没有办法告诉 devise 将初始确认电子邮件(仅初始确认电子邮件)密件抄送(或抄送)到(可选)“backup_email " 新用户注册表中也提供了电子邮件地址?
或者,有没有办法“禁用”确认电子邮件过程,但只有在注册字段中输入特定代码时?
我知道如何在设计注册表单中添加另一个字段,但我看不到如何/在哪里修改设计邮件代码,因此当确认电子邮件发送到“电子邮件”地址时,它也会发送到“ backup_email”地址(如果有,有时为空)。
感谢约翰尼·格拉斯!
我做了rails generate mailer CustomerUserMailer
并添加了
#config/initializers/devise.rb
config.mailer = "CustomUserMailer"
我的自定义邮件看起来像:
# app/mailers/customer_user_mailer.rb
class CustomUserMailer < Devise::Mailer
def headers_for(action)
headers = {
:subject => translate(devise_mapping, action),
:from => mailer_sender(devise_mapping),
:to => resource.email,
:cc => resource.backup_user_email(action),
:template_path => template_paths
}
end
end
然后我将 3 个邮件模板从 views/devise/mailer 移动到 views/customer_user_mailer(否则电子邮件为空)
然后我向我的User 模型添加了一个名为backup_user_email() 的方法,该方法根据用户记录中的数据和操作返回“备份”电子邮件地址(如果有)。唯一的“技巧”是在测试action 时,它不是action == "confirmation_instructions",而是action == :confirmation_instructions。
【问题讨论】:
标签: ruby-on-rails devise registration