Приглашать пользователей через devise без создания нового пользователя, пока приглашение не будет принято

Я хочу пригласить пользователей на различные события, которые есть в моей базе данных, и моя модель пользователя управляется с помощью устройства devise.

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

Так есть ли способ убедить devise_invitable не создавать новую учетную запись пользователя во время приглашения, а только тогда, когда приглашение принято, и пользователь не вошел в систему?

1 ответ

На самом деле, нет, Devise (а также Devise_Invitable) был предназначен только для регистрации User к одному сервису, следовательно, делая адрес электронной почты уникальным.

Вы думали об использовании Devise_Invitable чисто как служба регистрации и просто продлевая User объект для включения has_many EventRegistration атрибут для хранения ваших событий и комбинаций адресов электронной почты, как вы упомянули?

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