Olá pessoal,
Estou com dificuldades com outra coisa que parecia simples mas que não consigo fazer funcionar...
Na minha controller estou fazendo a verificação do valor de um atributo e tentando gerar um "erro" caso não esteja dentro de uma regra. Então faço a verificação e uso o errors.rejectValue(), conforme exemplo abaixo:
purchaseInstance.errors.rejectValue("transactionItem", "purchase.transactionItem.itemLimit", "quantidade insuficiente")
debugando eu consigo acessar o "errors" do objeto "purchaseInstance", aparece a mensagem do erro que eu gerei, quando passo no "if(purchaseInstance.hasErrors())" o erro é detectado e o programa entra no if, abaixo:
if (purchaseInstance.hasErrors()) {
respond purchaseInstance.errors, view:'create', model: []
return
}
só que a mensagem de erro não aparece na tela carregada. Se eu deixo algum campo obrigatório em branco (validação via constraint natural do grails) ele entra no hasErrors e carrega as mensagens do campo em branco e a minha mensagem de validação ("quantidade insuficiente") também é exibida.
ou seja, a mensagem está lá, mas só aparece se alguma constraint definida na domain for violada, se for apenas minha validação usando o "rejectValue()" não aparece.