我有一个自定义邮件(UserMailer.rb
)和一些方法来覆盖欢迎电子邮件的默认设计方法和忘记密码电子邮件。邮件程序使用自定义模板来设置电子邮件的风格 - 而且效果很好。我如何定制Devise的“重发确认电子邮件”
在config/initializers
,我有
module Devise::Models::Confirmable
# Override Devise's own method. This one is called only on user creation, not on subsequent address modifications.
def send_on_create_confirmation_instructions
UserMailer.welcome_email(self).deliver
end
...
end
文件(同样,UserMailer是建立和欢迎电子邮件的伟大工程,重置密码的电子邮件。)
但是,什么是不工作是选项“重新发送确认说明。”它使用默认的设计样式发送,我希望它使用我的邮件程序布局的样式。我知道我可以手动将布局添加到默认的Devise布局,但我想保持DRY有效,而不必这样做。
我试图重写send_confirmation_instructions
方法found here,但我在
7 # POST /resource/confirmation
8 def create
9 self.resource = resource_class.send_confirmation_instructions(resource_params)
在我的初始化文件中获取在create(gem) devise-2.2.3/app/controllers/devise/confirmations_controller.rb
一个wrong number of arguments (1 for 0)
错误,我能够得到这个错误通过添加新替代Devise,但我可能没有正确地做到这一点:
module Devise::Models::Confirmable::ClassMethods
def send_confirmation_instructions
UserMailer.send_confirmation_instructions(self).deliver
end
end
任何想法?