Разработать подтверждение подтверждения - PullRequest
0 голосов
/ 06 июня 2018

Этот вопрос очень похож на Rails Devise: after_confirmation , за исключением того, что я ищу более конкретный перехват подтверждения

Мой вариант использования: мне нужно синхронизировать новое электронное письмо пользователя на некоторыхсторонний сервис (если быть точным, Интерком).

У меня есть первая реализация, использующая API, в которой я поместил нужную логику (все приведено в порядок в сервисе)

Однако ячасто приходится выполнять большое количество операций по обслуживанию с помощью консоли, и самое очевидное, что приходит на ум, - это выполнить

user.email = 'newemail@example.com'
user.confirm # or skip_reconfirmation
user.save

. Используя это, я не запускаю свою логику ресинхронизации автоматически.Есть ли способ вызвать обратный вызов повторного подтверждения?переопределение after_confirmation не похоже на работу

1 Ответ

0 голосов
/ 06 июня 2018

Не совсем ответ, но в то же время я monkeypatched моего пользовательского класса со следующим (где xxx представляет некоторые обычные методы, добавленные в пользовательский класс для синхронизации со сторонними службами новой электронной почты)

class User
  include User::Console if defined?('Rails::Console')
end

module User::Console
  extend ActiveSupport::Concern

  included do
    ## Override Devise confirmable to add warnings

    def confirmation_warning
      puts "WARNING !!".red
      puts "calling `#confirm` or `#skip_reconfirmation!` on the user does not sync to xxx !\n"\
        'Please either use [Name of custom confirmation service], '\
        'or use `user.sync_to_xxx` to propagate changes'.red
    end

    def confirm
      confirmation_warning
      super
    end

    def skip_reconfirmation!
      confirmation_warning
      super
    end
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...