Класс домена Grails validate () возвращает значение false, но ошибки нет - PullRequest
0 голосов
/ 02 декабря 2011

В приведенном ниже коде validate () возвращает false, но я не вижу никаких ошибок.Поскольку метод проверки не работает, данные не сохраняются в базе данных.

if (!stockInstance.validate() && stockInstance.save(flush: true))
 //redirect(action: "show", id: saleInstance.id)
} else {
 println 'stock instance has errors'
 stockInstance.errors.each {
 println it
}
render(view: "edit", model: [saleInstance: saleInstance])
}

Это печать

stock instance has errors
org.springframework.validation.BeanPropertyBindingResult: 0 errors

Так что еще может быть ошибка.* Извините, что не просматривал данные должным образом, они сохранялись правильно.

1 Ответ

6 голосов
/ 02 декабря 2011

У вас есть !stockInstance.validate(), но оно должно быть stockInstance.validate().

!stockInstance.validate() && stockInstance.save(flush: true) никогда не может быть истинным, поскольку save() вызывает validate(), поэтому оно становится !stockInstance.validate() && stockInstance.validate()

Оно не сохраняется, поскольку вызов save() не происходит, поскольку validate() call return true (поэтому 1-я проверка ложна).

Поскольку save() звонит validate() Я не уверен, почему у вас есть дополнительный вызов там.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...