действия контроллера леса - PullRequest
0 голосов
/ 24 ноября 2011

Я смотрю на контроллер, который был сгенерирован с использованием grails generate-all.Есть ли причина, по которой есть действия create и save?Для меня было бы больше смысла иметь только 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
    }
}

Есть ли какие-либо причины, по которым я должен выполнять действия create и save и не идти по этому пути?С моей точки зрения, контроллер scaffolded слишком тяжел, и я ищу способы сделать его немного более подходящим (я использую код scaffolded для изучения Grails).

1 Ответ

1 голос
/ 24 ноября 2011

Действие создания - это первая запись для создания нового экземпляра домена, в то время как сохранение - это простое действие, которое пытается сохранить.Эти действия имеют четкие имена и простой код в контроллере.

Однако у вашего подхода есть некоторые проблемы.У вас есть два уровня if-else - это может быть проблематично, и его не так просто читать и поддерживать.Вам необходимо создать и поддерживать domainService, который фактически выполняет работу контроллера.Нет необходимости разбивать простое save () на service.

На мой взгляд, сгенерированный по умолчанию контроллер grails намного проще, чем ваш.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...