Validator with grails: не удалось создать пользователя - PullRequest
0 голосов
/ 13 января 2012

У меня есть это:

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       
    }
}

Я хочу вернуться в сообщении об ошибке, но я не ошибаюсь, я мог бы объяснить, пожалуйста?

1 Ответ

2 голосов
/ 14 января 2012

Я ожидаю, что в замыканиях валидатора будет некоторый условный возврат. В настоящее время похоже, что они всегда будут терпеть неудачу, возвращая код ошибки.

Попробуйте написать свои собственные валидаторы, такие как:

// 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
...