【发布时间】:2009-06-24 19:54:39
【问题描述】:
我正在尝试让 grails 验证对象列表的内容,如果我先显示代码可能会更容易:
class Item {
Contact recipient = new Contact()
List extraRecipients = []
static hasMany = [
extraRecipients:Contact
]
static constraints = {}
static embedded = ['recipient']
}
class Contact {
String name
String email
static constraints = {
name(blank:false)
email(email:true, blank:false)
}
}
基本上我只有一个必需的联系人(“收件人”),这很好用:
def i = new Item()
// will be false
assert !i.validate()
// will contain a error for 'recipient.name' and 'recipient.email'
i.errors
我还想验证“extraRecipients”中任何附加的Contact 对象,这样:
def i = new Item()
i.recipient = new Contact(name:'a name',email:'email@example.com')
// should be true as all the contact's are valid
assert i.validate()
i.extraRecipients << new Contact() // empty invalid object
// should now fail validation
assert !i.validate()
这可能吗,还是我只需要遍历控制器中的集合并在extraRecipients 中的每个对象上调用validate()?
【问题讨论】:
标签: grails grails-orm grails-validation