我有一个User类,它有一个List字段即pt。用户注册其帐户时,不会初始化此字段。但是当用户执行此控制器操作时:
def updatePt() {
//performs some action
def user = User.get(springSecurityService.principal.id) //find the user
user.pt = []
//on certain conditions i put values into user.pt like this
user.pt << "E"
//at last I save it
user.save()
}
但是通过脚手架使用user / show动作我发现pt字段没有保存在用户对象上。我在哪里弄错了?
答案 0 :(得分:1)
由于验证错误,这是可能的。试试
if (!user.save()) {
log.error('User not saved')
user.errors.each {
log.error('User error: $it')
}
}
PS或您可以使用println
代替log.error
答案 1 :(得分:1)
您必须在Users域类中提供静态映射,以便Grails知道该字段必须保留:
class User {
static hasMany = [pt: String]
}