我想避免有人可以使用用户名“Admin”创建用户。我使用这个用户名作为主机来控制我的应用程序的一些功能。我知道有一个表达式来验证模型记录的唯一性:
validates_uniqueness_of
但我只想要用户名'Admin'不能创建两次。我希望有人有个主意!感谢
答案 0 :(得分:2)
您可以使用conditionals in your validation执行以下操作:
class Model
validates :username, uniqueness: true, if: :admin?
def admin?
username.downcase == 'admin'
end
end
话虽如此,如果我不劝阻你这样做,他们会带走我的开发卡。
仅根据用户名是否为管理员来设置管理员帐户,这样可以确保您的安全受到威胁。请查看ActiveAdmin
之类的内容,以便管理您的管理员帐户,使其与您的用户帐户分开至少。
答案 1 :(得分:1)
或只是模型中的validates_uniqueness_of :username, if: -> {username == 'admin'}
。