我正在尝试向Devise :: Mailer添加一个方法,该方法应该在管理员创建没有密码的新用户时向用户发送邮件,并设置自己的密码。
Devise::Mailer.class_eval do
def set_password_instructions(record)
setup_mail(record, :set_password_instructions)
end
end
如果我把它放在/ lib中并在application.rb中需要它,它会在真正的Devise之前加载 如果我在我的user.rb顶部需要它,它第一次工作,在任何其他时间使用未知方法set_password_instructions失败。
仅当我在user#send_set_password_instructions
user.rb:
def send_set_password_instructions
Devise::Mailer.class_eval do
def set_password_instructions(record)
setup_mail(record, :set_password_instructions)
end
end
generate_reset_password_token!
::Devise.mailer.set_password_instructions(self).deliver
end
有人可以对这种奇怪的行为有所了解吗? 看起来Devise.mailer重新加载Devise :: Mailer类?