我只使用bcrypt对用户名和密码的用户注册验证有特定要求(没有设计!)
我目前有工作:
validates :username,
presence: true,
length: { minimum: 2, maximum: 15 },
uniqueness: true
validates :password,
presence: true,
length: { minimum: 10 },
我需要:
1.首先需要,您可以将其添加到您的用户名validates
:
format: { with: /\A[\w-]+\z/, message: "your format requirements" }
2.为了您的第二个需求,我没有找到它的正则表达式,您可以尝试添加自定义验证。
首先将此验证方法添加到您的模型:
def check_password_format
regexps = {" must contain at least one lowercase letter" => /[a-z]+/,
" must contain at least one uppercase letter" => /[A-Z]+/,
" must contain at least one digit" => /\d+/,
" must contain at least one special character" => /[^A-Za-z0-9]+/}
regexps.each do |rule, reg|
errors.add(:password, rule) unless password.match(reg)
end
end
然后在你的模型中写下这一行:
validate :check_password_format
因此,在您的表单页面中,通过对象的.errors
属性,您可以向用户显示他们缺少的格式要求。