コントローラーをより迅速に構築し、重複を取り除くために、基本クラスを作成しました。いくつかのヘルパー メソッド、デフォルト アクション、およびいくつかのメタ プログラミングを提供して、これらを簡単に構築できるようにします。
基本クラスのメソッドの 1 つは次のようなものです。
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 の実行時間は完全に問題があります :/
ケン