Придумайте: возможно ли НЕ отправить электронное письмо с подтверждением в определенных случаях?

На самом деле я использую 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 модуль

Решение должно быть чем-то похожим, как я упоминал здесь выше. И лучше всего избегать, чтобы контроллер выполнял эти обязанности, потому что это не то, что должен принимать ваш контроллер.:) Надеюсь, мой ответ поможет вам решить ваши проблемы! Спасибо!

Другие вопросы по тегам