我想避免有人可以使用用户名“Admin”创建用户。我使用这个用户名作为主机来控制我的应用程序的一些功能。我知道有一个表达式可以验证模型记录的唯一性:
validates_uniqueness_of
但我只希望用户名“Admin”不能被创建两次。我希望有人有一个想法!谢谢
我想避免有人可以使用用户名“Admin”创建用户。我使用这个用户名作为主机来控制我的应用程序的一些功能。我知道有一个表达式可以验证模型记录的唯一性:
validates_uniqueness_of
但我只希望用户名“Admin”不能被创建两次。我希望有人有一个想法!谢谢
您可以在验证中使用条件来执行以下操作:
class Model
validates :username, uniqueness: true, if: :admin?
def admin?
username.downcase == 'admin'
end
end
话虽如此,如果我不阻止你这样做,他们会拿走我的开发者卡。
仅根据用户名是否为管理员来建立管理员帐户正在为您的安全性受到损害进行设置。看看ActiveAdmin
管理您的管理员帐户之类的东西,以便它们至少与您的用户帐户分开。
或者只是 validates_uniqueness_of :username, if: -> {username == 'admin'}
在你的模型中。