at.*_*at. 6 ruby-on-rails username devise ruby-on-rails-3 ruby-on-rails-3.2
我遵循Devise的说明,除了登录电子邮件之外还使用用户名.除非人们可以使用重复的用户名注册,否则效果很好.如果有人尝试使用重复的电子邮件地址进行注册,则会在注册页面上显示此错误消息:
1错误禁止此用户被保存:
Run Code Online (Sandbox Code Playgroud)Email has already been taken
我想要一些非常相似的用户名.我该如何实现?
您应该使用唯一性验证器.将以下内容添加到user.rb中:
validates_uniqueness_of :username
Run Code Online (Sandbox Code Playgroud)
请注意,您可能希望使用户名唯一,但也不区分大小写,因此您最终不会同时获得用户名和用户名:
class User < ApplicationRecord
validates :username, presence: true, uniqueness: { case_sensitive: false }
# Rest of user model
end
Run Code Online (Sandbox Code Playgroud)
来自设计维基。