我想问一下是否可以关闭渲染表单和验证输入,然后让另一个控制器持久化?我与下面的这行代码有关:
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])
}
注意:第二个闭包
save
没有要渲染的 .gsp 文件,它只做持久性然后重定向进程,要么通过,要么失败。
当我在闭包中使用第一个 modelIstance 时save
,页面返回HTTP 405
错误。这是因为我们找不到model
对象,但我们使用了chain
方法?