Я написал базовый класс, чтобы ускорить сборку контроллеров и устранить дублирование. Он предоставляет некоторые вспомогательные методы, действия по умолчанию и некоторое метапрограммирование, чтобы упростить создание этих вещей.
Один из этих методов в базовом классе выглядит так:
def dynamicList(Class clazz) {
def model = new LinkedHashMap()
model[getMapString(clazz) + "s"] = list(clazz)
model[getMapString(clazz) + "sTotal"] = count(clazz)
model
}
Действие, которое вызывает его, также в базовом классе, таково:
def list = {
dynamicList(clazz)
}
К сожалению, когда я иду к списку действий в подклассе контроллера, который наследует базовый класс при развертывании моего приложения, я получаю следующее исключение:
groovy.lang.MissingMethodException: No signature of method: groovy.lang.MissingMethodException.dynamicList() is applicable for argument types: (java.lang.Class) values: [class project
.user.User]
at project.user.UserController$_closure1.doCall(UserController.groovy:18)
at project.user.UserController$_closure1.doCall(UserController.groovy)
at java.lang.Thread.run(Thread.java:619)
Как я могу нанести удар по голове и просто сказать, чтобы он делал то, что я хочу? Мои тестовые модули контроллера работают нормально, поэтому время работы Grails полностью неисправно: /
Ken