带有grails的验证器:未能创建用户



我有这个:

class Usuario {
        String username
        String password
        String passwordDos
        String nombre
        String apellidoPaterno
        String apellidoMaterno
        Date fechaDeNacimiento
        String sexo
        String correo
    static constraints = {
        username blank: false, unique: true, validator: { val, obj ->
                                            obj.password != val
                                            return ['usuario.userPassError'] 
                                        }
        password blank: false, validator: { val, obj ->
                                                    obj.passwordDos == val
                                                        return ['usuario.passDiferentes']    
                                                }
                passwordDos blank: false
                nombre   blank: false, maxSize: 64
                apellidoPaterno blank: false, maxSize: 64
                apellidoMaterno blank: true, maxSize: 64
                sexo inList: ["Femenino", "Masculino"]
                correo   blank: false, maxSize: 128, email:true       
    }
}

我想在错误消息中返回,但我没有做错,我可以解释一下算法?

我希望在验证器闭包中有某种条件返回。就目前情况来看,它们似乎总是会失败,返回错误代码。

尝试编写您的自定义验证器,如:

// username validator
validator: { val, obj ->
    obj.password == val ? 'userPassError' : true
}
// password validator
validator: { val, obj ->
    obj.passwordDos != val ? 'passDiferentes' : true
}

请注意返回的不同消息代码。

然后,确保在适当的grails-app/i18n/messages*文件中有以下内容:

usuario.username.userPassError = Username and password cannot be the same
usuario.password.passDiferentes = Password does not match password confirmation

最新更新