我对ruby / rails很新。我想知道什么是确保两个人不选择相同用户名的最佳方法。这是我的模特:
class User < ActiveRecord::Base
validates :username, :presence => true
validates :password, :presence => true, :length => { :minimum => 7}
end
注意:我假设最好将这种类型的代码放在模型中。如我错了请纠正我。
答案 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