脚手架控制器动作

时间:2011-11-24 02:04:25

标签: grails

我正在查看使用grails generate-all生成的控制器。是否存在createsave行为的原因?仅将create作为操作并将save作为服务对我来说更有意义。像这样:

def create = {
    if (params.create) { //this is the save button
         if (!domainService.save(params)) {
             render(view: "create", model: [domain: new Domain(params)]) //show validation errors
         }
         else {
             render(view: "show", id: params.id)
         }
    }
    else {
        render(view: "create") //show blank form
    }
}

有什么理由说明我应该同时采取createsave行动,而不是沿着这条路走下去?脚手架控制器在我的意见中太重了,我正在寻找方法使其更加简洁(我使用脚手架代码来学习grails)。

1 个答案:

答案 0 :(得分:1)

创建操作是创建新域实例的首次输入,而save是一个尝试保存的简单操作。这些操作在控制器中有明确的名称和简单的代码。

但您的方法存在一些问题。你有两个if-else级别 - 它可能有问题,并且它不易于阅读和维护。您需要创建和维护实际执行控制器作业的domainService。无需将简单的save()拆分为服务。

至于我,默认生成的grails控制器比你的简单得多。