使用grails在表中编辑和保存特定值

使用grails在表中编辑和保存特定值,grails,Grails,我有两个类User和UserGroup class User{ String userId String userName UserGroup usergroups static hasMany={usergroups:UserGroup} static belongsTo=UserGroup } class UserGroup{ String gid static hasMany={users:User} } 现在,我只想获取单独模板修改值中的用户组,并将其

我有两个类User和UserGroup

class User{ 

  String userId
  String userName
  UserGroup usergroups
  static hasMany={usergroups:UserGroup}
  static belongsTo=UserGroup
}

class UserGroup{
  String gid
  static hasMany={users:User}
}
现在,我只想获取单独模板修改值中的用户组,并将其保存回数据库

def savegroup = {
    def userInstance = User.get(params.id)
    if (userInstance.save(flush: true)) {
      redirect(action: "show")
    }
}

但是它显示了一个错误。请告诉我需要在控制器中写入什么???

您想要修改特定的用户组对象。首先,必须确保传递的params.id是要更改的用户组的id。然后您必须获取正确的用户组对象,而不是用户实例

def savegroup = {
    // make sure your're getting the right id!
    def userGroup= UserGroup.get(params.id)
    // check whether the userGroup is not null
    if (userGroup.save(flush: true)) {
      redirect(action: "show")
    } else {
       // log msg
    }
}

存储组未保存组。您正在获取并保存一个userInstance,而您甚至没有修改userInstance。另外,如果不告诉我们您遇到了什么错误,我们也无法帮助您。错误500:执行控制器[app.UserController]的操作[savegroup]导致异常:无法在null对象上调用方法save这是我遇到的错误。请告诉我需要更改什么而不是userInstance??感谢tou@hitty5,我正在选择多个值。我可以使用getAll方法吗?您必须将所选ID传递给控制器。在那里,您可以调用例如UserGroup.getAllparams.list['SelectedDS']