Лучший способ проверить, существует ли имя пользователя в модели - PullRequest
1 голос
/ 26 февраля 2011

Я совсем новичок в ruby ​​/ rails.Мне было интересно, как лучше всего убедиться, что два человека не выбирают одно и то же имя пользователя.Вот моя модель на данный момент:

 class User < ActiveRecord::Base
   validates :username, :presence => true
   validates :password, :presence => true, :length => { :minimum => 7}
 end

Примечание: я предполагаю, что этот тип кода лучше всего размещать в модели.Поправьте меня если я ошибаюсь.

Ответы [ 3 ]

2 голосов
/ 26 февраля 2011

Существует проверка, чтобы убедиться, что поле уникально. Просто измените свое имя пользователя на:

validates :username, :presence => true, :uniqueness => true
0 голосов
/ 29 ноября 2011

Вы также должны добавить индекс к вашей пользовательской таблице, с уникальностью.Таким образом, если люди быстро нажмут кнопку регистрации имени пользователя дважды, вы также будете защищены на уровне базы данных

add_index :users, :username, :unique => true
0 голосов
/ 26 февраля 2011

На этот вопрос уже был дан правильный ответ, но для дальнейшего использования APIDock имеет отличную документацию по Rails: http://apidock.com/rails. Автозаполнение поиска просто фантастическое.

Документация по методу validates здесь: http://apidock.com/rails/ActiveModel/Validations/ClassMethods/validates, где вы можете найти опцию :uniqueness => true.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...