Придумайте: возможно ли НЕ отправить электронное письмо с подтверждением в определенных случаях?
На самом деле я использую devise для входа в систему и регистрации, и он работает нормально, он посылает подтверждение по электронной почте, что действительно хорошо. Но мне нужно отправить подтверждение по электронной почте в определенных случаях. Я передаю пользовательский тип в URL, и от имени которого я хочу установить почту. У меня есть два типа пользователей, один из которых будет подтверждать свою учетную запись, их собственный сброс пользователей не может подтвердить свою учетную запись, только администратор может утвердить их учетные записи. Я переопределил метод создания
def create
super
if params[:type]=='xyz
@user.skip_confirmation_notification!
end
end
но он отправляет почту в обоих случаях. Пожалуйста, расскажите, где я не прав.
1 ответ
Таким образом, в соответствии с разработанным подтверждающим модулем, вы можете пропустить отправку подтверждения и электронной почты по следующему коду
def confirm_your_type_user_without_confirmation_email
# check your condition here and process the following
self.skip_confirmation!
self.confirm!
# condition may end here
end
Теперь давайте вызовем это при создании хука.
class User < ActiveRecord::Base
after_create :confirm_your_type_user_without_confirmation_email
....
end
для получения дополнительной информации вы можете проверить это: Devise Confirmable модуль
Решение должно быть чем-то похожим, как я упоминал здесь выше. И лучше всего избегать, чтобы контроллер выполнял эти обязанности, потому что это не то, что должен принимать ваш контроллер.:) Надеюсь, мой ответ поможет вам решить ваши проблемы! Спасибо!