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