我有一个自定义邮件程序 ( UserMailer.rb
) 和一些方法来覆盖欢迎电子邮件和忘记密码电子邮件的默认设计方法。邮件程序使用自定义模板来设置电子邮件的样式——而且效果很好。
在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 已设置好,适用于欢迎电子邮件和重置密码电子邮件。)
但是“重新发送确认说明”选项不起作用。它使用默认的设计样式发送,我希望它使用我的邮件布局的样式。我知道我可以手动将布局添加到默认的设计布局,但我想保持 DRY 有效,而不必这样做。
我已尝试覆盖此处找到send_confirmation_instructions
的方法,但在wrong number of arguments (1 for 0)
create(gem) devise-2.2.3/app/controllers/devise/confirmations_controller.rb
7 # POST /resource/confirmation
8 def create
9 self.resource = resource_class.send_confirmation_instructions(resource_params)
在我的初始化程序文件中,我可以通过为 Devise 添加新的覆盖来解决此错误,但我可能没有正确执行此操作:
module Devise::Models::Confirmable::ClassMethods
def send_confirmation_instructions
UserMailer.send_confirmation_instructions(self).deliver
end
end
有任何想法吗?