Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
GORM与grails脚手架一对一?_Grails_Gorm - Fatal编程技术网

GORM与grails脚手架一对一?

GORM与grails脚手架一对一?,grails,gorm,Grails,Gorm,我有一个域对象Department,它与另一个域对象DepartmentPreference具有一对一的关系。当我尝试为部门生成脚手架控制器时,剩下的是一个下拉菜单,用于选择部门首选项。因为还没有(因为DepartmentPreference有一个belongsTo=Department),所以我无法创建一个 您能推荐的最佳解决方案是什么?您是否像为部门创建控制器/视图一样为部门首选项创建了控制器/视图?如果没有,则需要创建一个或添加/修改现有的控制器/视图来处理该功能 由于您提到脚手架-我假设

我有一个域对象
Department
,它与另一个域对象
DepartmentPreference
具有一对一的关系。当我尝试为
部门
生成脚手架控制器时,剩下的是一个下拉菜单,用于选择
部门首选项
。因为还没有(因为
DepartmentPreference
有一个
belongsTo=Department
),所以我无法创建一个


您能推荐的最佳解决方案是什么?

您是否像为部门创建控制器/视图一样为部门首选项创建了控制器/视图?如果没有,则需要创建一个或添加/修改现有的控制器/视图来处理该功能

由于您提到脚手架-我假设您的部门主管定义如下:

class DepartmentController {
  static scaffold = true
  ..
}


如果这个部门控制器是自动生成的,或者是用scaffold定义的,那么它只是为部门提供CRUD操作,而不是任何其他域类(至少不是直接提供)。有很多方法可以添加缺少的DepartmentPreference功能,但对您来说,最快的方法可能是使用任何方法在DepartmentPreference上创建部门控制器

当然,我想我的问题还不够清楚。DepartmentPreferenceController需要对现有部门的引用,DepartmentController需要对现有DepartmentPreference的引用。理想情况下,这两个对象都需要在同一事务中创建。只需添加自定义逻辑,该逻辑将提供一个表单来捕获部门和部门首选项信息,然后提交给控制器上的自定义操作(可能是DepartmentController,因为听起来部门是所属实体)。您可以在脚手架控制器中定义自定义逻辑,也可以使用generate controller命令生成默认CRUD操作,然后使用自定义逻辑更新其中一个操作。在任何情况下,您基本上需要一些自定义逻辑来做您想要的事情,GrailsScaffold特性在默认情况下不会提供您所需要的。这是有意义的。确认它不是默认提供的东西是很好的。
class SomeController {
  static scaffold = Department
  ..
}