2010-02-03 68 views
0

我正在嘗試在grails中爲腳手架不會做的事情創建自己的CRUD控制器。通過參考使用grails/groovy類

而不是維護每個域的控制器的代碼,我想有一個控制器,可以照顧任何域的普通CRUD調用..唯一的區別是域名類。

使用域類工作&注意的例子

而不是

Job.get(id) 
Job.list() 
def instance = new Job(params) 

Note.get(id) 
Note.list() 
def instance = new Job(params) 

我在想

def someHandler = Job // configurable 

someHandler.get(id) 
someHandler.list() 
def instance = new someHandler(params) 

前兩個靜態方法做工精細(獲取,列出),但創建一個新的實例不會。 任何指示如何最好地做到這一點。

乾杯

回答

2

呼叫使用

def instance = someHandler.newInstance() 

和PARAMS構造函數使用

def instance = someHandler.newInstance(params) 
+0

That worked!!謝謝 – 2010-02-03 11:06:17

0

如果你不快樂與Grails提供的腳手架控制器/視圖的默認構造函數默認值,並且想要以類似的方式對所有域類進行更改,但更好的方法可能是簡單地編輯用於生成這些共同域的模板ntrollers /視圖。

您可以通過運行腳本grails install-templates來完成此操作。這將在src/templates/scaffolding目錄中創建一些文件,其中每個文件都定義了用於生成腳手架工件的模板。

更改這些模板以創建所需的控制器/視圖。如果您已經爲任何域類運行grails generate-all,則需要再次運行這些類才能更新現有的腳手架。