我有一個自定義郵件(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
任何想法?