【问题标题】:scaffolded controller actions脚手架控制器动作
【发布时间】:2011-11-24 02:04:25
【问题描述】:

我正在查看使用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)。

【问题讨论】:

    标签: grails


    【解决方案1】:

    创建动作是创建新域实例的首次入口,而保存是尝试保存的简单动作。这些动作在控制器中具有清晰的名称和简单的代码。

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

    对我来说,默认生成的 grails 控制器比你的简单得多。

    【讨论】:

      猜你喜欢
      • 2014-06-30
      • 2011-08-03
      • 2011-03-01
      • 1970-01-01
      • 2012-04-09
      • 1970-01-01
      • 2012-10-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多