Как я могу заменить действие контроллера в скаффолде и по-прежнему вызывать оригинал в Grails? - PullRequest
2 голосов
/ 20 сентября 2011

Мне нужно «переопределить» действие scaffolded в контроллере, сделать некоторые вещи и затем вызвать оригинал. Я бы предпочел использовать динамически генерируемый метод, а не вырезать и вставлять код.

class AccountController {
    static scaffold = Account
    def list = {
        // do something
        // invoke "super.list" i.e. the dynamically generated scaffold
    }

Есть идеи?

Ответы [ 2 ]

2 голосов
/ 20 сентября 2011

Вместо этого вы можете рассмотреть возможность использования перехватчика или фильтра (почему? Намного чище)

Контроллеры-перехватчики http://grails.org/doc/latest/guide/6.%20The%20Web%20Layer.html#6.1.5

Фильтры http://grails.org/doc/latest/guide/6.%20The%20Web%20Layer.html#6.6

0 голосов
/ 20 сентября 2011

После того, как вы сделали все, что вам нужно, в вашем новом контроллере, просто перенаправьте на оригинал.Что-то вроде:

class NewController
 def doSomethingOriginal = {
    redirect(controller: "scaffoldedcontroller", action: "list", params: params)
 }
}

Надеюсь, это поможет

...