У меня есть приложение Rails с Clearance и Pundit, и я пытаюсь создать «команды», в которых «Team Leader» может пригласить других пользователей присоединиться к их команде.Я хотел бы сделать что-то похожее на devise_invitable , но с оформлением.
Вот мой план того, как это может работать:
Пользователям, которые регистрируются на сайте через форму регистрации, автоматически присваивается уникальный идентификатор группы и они становятся "Руководитель группы."Они не видят этот идентификатор в форме.(Другой способ сделать это - создать уникальное имя команды, которое сохраняется при регистрации.) Является ли лучший способ сделать это, чтобы создать before_filter для назначения идентификатора команды и руководителя группы при регистрации?
Идентификаторы или имена команд будут уникальными, и каждый пользователь может принадлежать только одной команде.Ассоциация будет выглядеть следующим образом:
Команда
has_many :users
Пользователь
belongs_to :team
После создания этой учетной записи «Team Leader», этот пользовательможете пригласить других пользователей присоединиться к команде, заполнив новую форму пользователя #, аналогичную форме регистрации разрешения (имя, адрес электронной почты и т. д.). Эта форма создаст пользователя и назначит его команде руководителя группы.Им может быть назначен случайный пароль для Разрешения , чтобы новый пользователь прошел проверку.
После того, как пользователь был создан руководителем группы, он становитсясохраняется в базе данных со случайно сгенерированным паролем и отправляется отправителю приглашенному пользователю, что аналогично стандартной очистке сброса пароля отправителем.Он просто уведомляет их о том, что они были приглашены в команду, и предоставляет ссылку для сброса их пароля и входа в систему. По сути, это программа очистки сброса пароля с другой копией.
Это достойная стратегия или есть более широко используемый шаблон, который мне не хватает для решения этой проблемы с Clearance и Pundit ?Я никогда не делал ничего подобного с Rails, поэтому я не знаю, является ли это способом использования клейкой ленты Clearance .