0

私はこれらのドメインを持っています:

    class ChildPlacementFile{
    .....
    static hasMany = [children : Client]
    static belongsTo  = [father : Client, mother: Client]
    Client child
    ...other fields etc.
    }

class Client{
String firstName
String lastName
....etc etc.
}

クライアントから、フォームに複数の保存を許可するように依頼されました。というわけでこんな感じのサービスを作りました。

def saveChildren(ChildPlacementFile childPlacementFileInstance, params){
    def childrenList = []
    def errorList = []

    params.rowId = [params.rowId].flatten()
    params.child = [params.child].flatten()

    params.rowId.eachWithIndex {child, i ->
        Client childInstance = Client.get(params.child[i])

        if(childInstance){
            childrenList.add(childInstance)
            childPlacementFileInstance?.addToChildren(childInstance).save()
                    }else{
            errorList.add(childInstance)
        }
    }

    [errors: errorList, children:childrenList]

}

コントローラーで確認しようとすると、子はsave()メソッド[childPlacementFileInstance.?children]に保存されているようですが、show()メソッドにリダイレクトすると[childPlacementFileInstance.?children]は保存されませんもう現れない、それは空だ。どうして??O_O

エラーも例外もありませんでした。だから私はそれがうまくいくと思っていましたが、そうではありませんでした。:(

4

1 に答える 1

0

私の推測では、 save メソッドはいくつかの制約で失敗します。save check を呼び出した後にチェックしchildPlacementFileInstance.hasErrors()ます。明示的な例外をスローしたくない場合は、パラメーターを指定してメソッドを呼び出しますchildPlacementFileInstance.save(failOnError: true)

于 2012-11-12T16:43:46.207 に答える