2012-10-19 36 views
3

我有一個域對象Department與另一個域對象DepartmentPreference有一對一的關係。當我嘗試生成Department的腳手架控制器時,我剩下一個下拉菜單來選擇DepartmentPreference。由於還沒有(因爲DepartmentPreferencebelongsTo = Department),我無法創建一個。GORM一對一搭配grails腳手架?

什麼是您可以推薦的最佳解決方案?

回答

2

您是否像爲部門創建了DepartmentPreference的控制器/視圖?如果沒有,您需要創建一個或添加/修改任何現有的控制器/視圖來處理該功能。

既然你提到腳手架 - 我假設你系控制器就像下面的一個定義:

class DepartmentController { 
    static scaffold = true 
    .. 
} 

class SomeController { 
    static scaffold = Department 
    .. 
} 

如果系控制器 - 爲汽車生成或用腳手架定義,那麼它只爲Department提供CRUD操作,而不是任何其他的域類(至少不是直接)。有很多方法可以添加缺少的DepartmentPreference功能,但最可能使用的方法是使用您在DepartmentPreference上創建部門控制器的任何方法。

+0

當然,我想我在問題上還不夠清楚。 DepartmentPreferenceController需要對現有部門的引用,而DepartmentController需要對現有DepartmentPreference的引用。理想情況下,這兩個對象都需要在同一個事務中創建。 – Joe

+0

只需添加自定義邏輯,即可提供表單以捕獲Department和DepartmentPreference信息,然後提交給控制器上的自定義操作(可能是DepartmentController,因爲聽起來像Department是擁有實體)。您可以在腳手架控制器中定義自定義邏輯,也可以使用** generate-controller **命令生成默認的CRUD操作,然後使用您的自定義邏輯更新其中一個操作。無論如何,你基本上需要一些自定義邏輯來做你想做的事情,Grails腳手架功能將不會提供你默認需要的東西。 – user553180

+0

有道理。確認它不是默認提供的東西,這很好。 – Joe