Как обрабатывать предварительно зарегистрированных пользователей и избегать дублирования в rails

Я пытаюсь найти лучший способ справиться с этой ситуацией:

Пользователь регистрируется -> создает группу -> добавляет пользователей в группу

Добавленный пользователь заходит на сайт -> регистрируется -> создает другую группу

Здесь есть два класса «пользователей»: зарегистрированные (которые входят в веб-приложение) и незарегистрированные (которые могут взаимодействовать с приложением исключительно по электронной почте, поскольку они добавлены в группу). У меня есть логическое поле для «зарегистрированного».

Пользователь, который заходит на сайт и создает группу, "зарегистрирован". Только что добавленный в группу пользователь ею не является.

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

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

Что вы ребята думаете?

(Заранее спасибо.)


person Richard Burton    schedule 09.09.2011    source источник
comment
Вы должны начать с просмотра Проверки ActiveRecord.   -  person Adam Eberlin    schedule 09.09.2011


Ответы (1)


У меня не было бы отдельных таблиц, если бы единственным отличием было состояние/роль; просто посмотрите, есть ли они уже в системе, и если есть, измените их состояние.

person Dave Newton    schedule 09.09.2011
comment
Спасибо. У меня есть зарегистрированный атрибут для каждого пользователя. Чтобы перевернуть его, я бы добавил что-то вроде User.registered = true в свой UsersController? - person Richard Burton; 09.09.2011