レンダリングフォームと入力の検証を閉じてから、他のコントローラーを永続化できるかどうかを尋ねたいと思いますか? 私は以下のコード行に関係しています:
def create() {
if(params.size() <= 2) {
[modelInstance: new <Domain>()]
} else {
def model = new <Domain>(params)
if(!model.validate()) {
render(view:"create", model: [modelInstance: model])
return
} else {
chain(action:"save", model: [modelInstance: model])
}
}
}
def save() {
// where the modelInstance object was created from the create closure
if (!modelInstance.save(flush: true)) {
render(view: "create", model: [modelInstance: modelInstance])
return
}
flash.message = "Sucess!"
redirect(action: "show", model: [modelInstance: modelInstance])
}
注: 2 番目のクロージャー
save
には、レンダリングする .gsp ファイルがありません。それが行うのは、永続化を行い、プロセスを成功または失敗にリダイレクトすることだけです。
クロージャで最初の modelIstance を使用するsave
と、ページがエラーを返しHTTP 405
ます。model
これは、オブジェクトを見つけることができなかったが、chain
メソッドを使用した結果ですか?