我通过将其添加到Config.groovy的Report
属性来使grails.validateable.classes
成为可验证的类:
class Report {
/* fields */
Product product
static constraints = {
product nullable: true, validator: { val ->
if(val && val.quantity > 0) {
return (val.code && val.locations.size() > 0)
}
}
}
}
class Product {
BigDecimal quantity
String code
List<Location> locations
}
有了这个,我尝试通过调用Report
来验证report.validate()
,但validate
始终返回true。我尝试制作自定义验证器:
...
product validator: { val ->
return false
}
所以在validate
上调用Report
总是返回false,但它仍然返回true,使实例有效。据我所知,调用validate
时不调用类Validateable的自定义验证器。
这是一个已知的错误吗?如果是的话,我无法在任何地方找到参考。我不能对可验证的类使用自定义验证器吗?或者我的代码出了什么问题?
修改:修正了拼写错误。应该是grails.validateable.classes
而不是grails.validateable.class