validation - Grails:尽管有错误,对象仍被保存

标签 validation grails

尝试验证和保存域对象时遇到问题。

首先,我要进行验证,当验证错误时,我会将错误放入我要保存的对象中,如下所示:

myDomain.errors.reject("An Error")
myDomain.discard()

然后,当我尝试保存该对象时,我可以看到错误列表有一个错误,但是'validate()'返回'true',而且,函数完成后,该对象也将自动保存。
我必须说,所有调用的函数都在同一类中,该类是 Controller 。

我需要知道如何对我的保存函数(在 Controller 类中)进行编码,该函数仅显示错误而不保存对象,并且在验证良好时保存对象。

谢谢!

最佳答案

myDomain.validate()将覆盖myDomain.errors清除reject()。您可以执行以下操作:

  // bind etc.
  ...

  // do grails validation
  if (!myDomain.validate()) {
    myDomain.discard()
  }

  // do custom validation
  if (custom validation has errors) {
    myDomain.errors.reject ()
    myDomain.discard()
  }

如果可以将自定义验证移到myDomain上的validator中,则不需要自定义验证。

您不需要显式调用save()。

关于validation - Grails:尽管有错误,对象仍被保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24852659/

相关文章:

php - 重定向后重新填写表格

jquery - Bootstrap 验证器重置表单不起作用

authentication - Grails Spring Security登录失败未重定向到登录 View

grails - Grails找到域,然后将其保存

ruby-on-rails-3 - 如何根据模型中的 Controller 名称进行条件验证语句

regex - 正则表达式识别电子邮件地址难吗?

json - Grails 1.3.9解析JSON文件

grails - Grails-Spring Security保存UserRole

grails - 如何在 Config.groovy 中指定目标目录?

regex - 使用 sed 脚本仅打印有效的电子邮件条目