Как условно игнорировать, что пользователь не подтвержден в Rails, Devise?

#ruby-on-rails #devise #devise-confirmable

#ruby-on-rails #разработать #devise-подтверждаемый

Вопрос:

По сути, у меня есть то, что пользователь создается при бронировании (из их данных бронирования), но они должны отметить опцию, чтобы фактически иметь учетную запись на веб-сайте. Последнему типу пользователей требуется подтверждение электронной почты, а предыдущему — нет.

Как мне игнорировать, что пользователь не подтвержден динамически на основе некоторого атрибута модели?

Ответ №1:

Вы можете использовать skip_confirmation_notification! из подтверждаемого модуля.

Это создало бы пользователя, но не отправило бы ему электронное письмо с подтверждением. Пользователю все равно потребуется подтверждение, чтобы стать пользователем devise, но вы все равно можете получить пользователя, используя либо user.confirmation_token, который эквивалентен уникальному токену (NULL для подтвержденных пользователей), либо user.confirmed_at, который будет равен NULL для неподтвержденных, поскольку при подтверждении добавляется дата.