我想使用Sendgrid模板在用户注册我的网站时向他们发送欢迎电子邮件。我已经检查过:Devise's How-to Use customer mailer并且已经完成了前几个步骤,但是,由于我需要能够输入一些自定义信息和替换,因此我坚持放置confirmation_instructions
方法的位置传递的变量。我也在使用设计生成的控制器controllers/users/...
这是我到目前为止所做的:
自定义类:models / devise_mailer.rb
class DeviseMailer < Devise::Mailer
helper :application
include Devise::Controllers::UrlHelpers
default template_path: 'devise/mailer'
end
配置/初始化/ devise.rb
添加:config.mailer = "DeviseMailer"
现在从这里开始,我应该做类似下面的事情,但我不知道该把它放在哪里。我需要制作自定义控制器吗?如果是这样,我如何确保新用户注册使用该方法?:
def confirmation_instructions(record, token, opts={})
headers["Custom-header"] = "Bar"
super
end
我离开这里了吗?
答案 0 :(得分:1)
把它放在这里:
class DeviseMailer < Devise::Mailer
helper :application
include Devise::Controllers::UrlHelpers
default template_path: 'devise/mailer'
def self.confirmation_instructions(record, token, opts={})
new(:confirmation_instructions, record, token, opts)
end
end
(注意改变方法)
然后从任何控制器中随意调用它:
current_user.send_confirmation_instructions