コマンド オブジェクトでネストされたドメイン クラス インスタンスを検証しようとしています。
次のコマンドオブジェクトを持つ
package demo
import grails.databinding.BindingFormat
class SaveEventCommand {
@BindingFormat('yyyy-MM-dd')
Date date
Refreshment refreshment
static constraints = {
date validator: { date -> date > new Date() + 3}
refreshment nullable: true
}
}
そして、独自の制約を持つ次のドメインクラスを持つ
package demo
class Refreshment {
String food
String drink
Integer quantity
static constraints = {
food inList: ['food1', 'food2', 'food3']
drink nullable: true, inList: ['drink1', 'drink2', 'drink3']
quantity: min: 1
}
}
リフレッシュメントがnull可能でない場合、コマンドオブジェクトは日付プロパティを検証し、リフレッシュメントインスタンスの対応する制限を確認する必要があります
今のところ、コントローラーで次のコードを試してください。
def save(SaveEventCommand command) {
if (command.hasErrors() || !command.refreshment.validate()) {
respond ([errors: command.errors], view: 'create')
return
}
// Store logic goes here
}
ここまで!command.refreshment.validate()
、更新インスタンスを検証しようとしましたが、正しくないデータを渡した場合でも、エラーがないという結果が得られました。
ガイドに感謝し、お時間をいただきありがとうございます