我有一个用户注册页面。我希望用户密码为4到16个符号。我需要检查他们至少有一个大写字母和一个数字。比我正在制作这个密码的md5哈希并把它放到数据库中 我该如何验证呢? 如果密码长度为32个符号,则在模型测试中验证:
validates :password, :length => { :minimum => 32 ,
:message => 'Not an md5 password provided.' }
但是,在对其进行哈希处理并为此验证设置适当的错误之前,如何验证密码是否符合我的要求? 我想查看user.errors [:password]包含“必须至少有一个数字”之类的内容。并且'必须至少有一个大写字母。'
答案 0 :(得分:2)
您可以创建一个自定义验证器方法,您可以在其中执行任何操作:
validate :password_validation
def password_validation
unless password.length > 32 && ... # other requirements
errors.add(:password, 'Not an md5 password provided.')
end
end
答案 1 :(得分:1)
您可以提供自定义回调。请参阅Rails指南中的此链接:http://guides.rubyonrails.org/active_record_validations_callbacks.html#custom-validators