Grails域模型在渲染之前传递给另一个闭包

时间:2012-07-23 05:56:47

标签: http grails

我想问一下是否有可能对渲染表单进行闭包和输入验证然后让其他控制器进入持久性?我与以下这行代码有关:

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文件,它是什么   只有做持久性然后重定向过程要么通过   或者失败。

当我在save闭包中使用第一个modelIstance时,页面返回HTTP 405错误。这是一个结果,因为我们无法找到model对象,但我们使用了chain方法?

1 个答案:

答案 0 :(得分:0)

看起来你正在尝试使用私有帮助方法更合适的链。尝试使用单独的方法在两个控制器中封装所需的逻辑。