2012-09-16 5 views
0

Как создать уникальные имена пользователей на основе формата. Так, например, первый пользователь подписывается. Имя пользователя для него - AAA001, второй пользователь подписывает имя пользователя AAA002, и он продолжает увеличиваться. Как я могу настроить его, даже если два пользователя нажимают кнопку регистрации одновременно, база данных просто отправляет им уникальное имя пользователя. Это будет сделано на RoR.Создание уникальных имен пользователей в рельсах

Спасибо заранее

+0

BTW последнее имя пользователя будет ZZZ999 (я просто пишу это для демонстрационной цели, чтобы показать, что буквы тоже увеличиваются.) –

ответ

0

вы можете создать имя пользователя в after_safe крючок модели и сохранить! снова в транзакции (для предотвращения условий гонки) и использовать DB-ID уже сохраненного пользователя для генерации имени пользователя

+0

Итак, я должен снова сохранить пользователя и применить новое имя пользователя? Откуда вы знаете способ, которым я мог бы увеличиваться от последнего пользователя? –

0

Вам необходимо использовать транзакции базы данных.

Вот пример:

ActiveRecord::Base.transaction do 
    #code goes here 
end 

Это будет гарантировать, что код внутри транзакции блокировки.

+0

Значит, это будет в модели? Как я могу получить имя пользователя и показать его пользователю –

Смежные вопросы