Devise for Rails中的唯一用户名

at.*_*at. 6 ruby-on-rails username devise ruby-on-rails-3 ruby-on-rails-3.2

我遵循Devise的说明,除了登录电子邮件之外还使用用户名.除非人们可以使用重复的用户名注册,否则效果很好.如果有人尝试使用重复的电子邮件地址进行注册,则会在注册页面上显示此错误消息:

1错误禁止此用户被保存:

Email has already been taken
Run Code Online (Sandbox Code Playgroud)

我想要一些非常相似的用户名.我该如何实现?

Vad*_*mel 9

您应该使用唯一性验证器.将以下内容添加到user.rb中:

validates_uniqueness_of :username
Run Code Online (Sandbox Code Playgroud)

更多关于此验证器的信息


ant*_*tun 6

请注意,您可能希望使用户名唯一,但也不区分大小写,因此您最终不会同时获得用户名和用户名:

class User < ApplicationRecord
  validates :username, presence: true, uniqueness: { case_sensitive: false }
  # Rest of user model
end
Run Code Online (Sandbox Code Playgroud)

来自设计维基