Я пытаюсь добавить метод в 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 класс?