2012-10-19 28 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