8

除了使用电子邮件进行登录外,我还按照Devise 的说明使用用户名。效果很好,除了人们可以使用重复的用户名注册。如果有人尝试使用重复的电子邮件地址注册,他们会在注册页面上看到以下错误消息:

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

Email has already been taken

我想要用户名非常相似的东西。我该如何实施?

4

2 回答 2

11

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

validates_uniqueness_of :username

有关此验证器的更多信息

于 2012-10-02T07:36:04.457 回答
3

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

class User < ApplicationRecord
  validates :username, presence: true, uniqueness: { case_sensitive: false }
  # Rest of user model
end

来自设计维基

于 2020-05-27T03:14:46.853 回答