Devise for Rails中的唯一用户名

时间:2012-10-02 07:30:41

标签: ruby-on-rails ruby-on-rails-3 devise ruby-on-rails-3.2 username

我按了Devise's instructions for using usernames in addition to emails进行登录。除非人们可以使用重复的用户名注册,否则效果很好。如果有人尝试使用重复的电子邮件地址进行注册,则会在注册页面上显示此错误消息:

  

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

Email has already been taken

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

2 个答案:

答案 0 :(得分:9)

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

validates_uniqueness_of :username

more about this validator

答案 1 :(得分:1)

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

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

来自Devise wiki