Config.groovyReportのプロパティにクラスを追加して、クラスを検証可能にしました。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呼び出して a を検証しようとしますreport.validate()が、validate常に true を返します。カスタムバリデータを作成してみました:
...
product validator: { val ->
return false
}
validateaを呼び出すとReport常に false が返されますが、それでも true が返され、インスタンスが有効になります。私が知る限り、 Validateable にされたクラスのカスタムバリデーターは、 を呼び出すときに呼び出されませんvalidate。
これは既知のバグですか? もしそうなら、私はどこにも参照を見つけることができません。Validateable になっているクラスにカスタム バリデータを使用することはできませんか? または、私のコードに何か問題がありますか?
編集:タイプミスを修正しました。grails.validateable.classesの代わりにする必要がありますgrails.validateable.class