检查模型中是否存在用户名的最佳方法

时间:2011-02-26 05:53:07

标签: ruby-on-rails ruby model

我对ruby / rails很新。我想知道什么是确保两个人不选择相同用户名的最佳方法。这是我的模特:

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

注意:我假设最好将这种类型的代码放在模型中。如我错了请纠正我。

3 个答案:

答案 0 :(得分:2)

确认字段是唯一的验证。只需将您的用户名验证更改为:

即可
validates :username, :presence => true, :uniqueness => true

答案 1 :(得分:0)

此问题已得到正确回答,但为了将来参考,APIDock在此处提供了优秀的Rails文档:http://apidock.com/rails。搜索的自动完成非常棒。

validates方法的文档位于:http://apidock.com/rails/ActiveModel/Validations/ClassMethods/validates,您可以在其中找到:uniqueness => true选项。

答案 2 :(得分:0)

您还应该为您的usertable添加一个索引,具有唯一性。这样,如果人们快速按两次用户名注册按钮,您也将受到数据库级别的保护

add_index :users, :username, :unique => true