2011-08-05 11 views
0

を使用して、テーブル内の特定の値を保存し、私は二つのクラスのユーザーとのUserGroup編集とGrails

class User{ 

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

class UserGroup{ 
    String gid 
    static hasMany={users:User} 
} 

を持って、私は別々のテンプレートにのみユーザグループを取る値を変更し、database.Inに戻ってそれを保存したいです私のユーザーコントローラは私が書いた

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

しかし、そのエラーを示しています。

+1

savegroupはグループを保存していません。あなたはuserInstanceを取得して保存していますが、userInstanceも変更していません。また、どのようなエラーが発生したか教えてくれることはありません。 – Gregg

+0

エラー500:コントローラ[app.UserController]のアクション[savegroup]を実行すると例外が発生しました:ヌルオブジェクトでメソッドsave()を呼び出せません – sree

+0

これはエラーです。私はuserInstanceではなく変更する必要がありますか? – sree

答えて

0

特定のUserGroupオブジェクトを変更する必要があります。まず、渡された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 
    } 
} 
+0

tou @ hitty5に感謝、私は複数のvalues.can私はgetAll()メソッドを使用して選択していますか? – sree

+0

あなたのコントローラに選択したIDを渡す必要があります。そこに電話することができます。 UserGroup.getAll(params.list ['selectedIds']) – hitty5

+0

ありがとうございました.. – sree

関連する問題