Grails脚手架

时间:2014-08-25 12:36:08

标签: grails gorm scaffolding

我最近正在研究grails,并想知道如何做更复杂的脚手架

例如,如果我想要Scaffold一个类

class Book{
  Author a
  Publisher p

  // ....
}

作者类

class Author{
   String firstName
   String lastName
   // ...
}

发布商类

class Publisher{
    String name
    String address
    // ....
}

现在,如果我有一个BookController

class BookController{
   static scaffold = true;
}

我有

的布局

作者发布商

但是如果我想要一个带

的布局

的AuthorID AuthorFirstName AuthorLastName PublisherName的PublisherAddress

我查看了http://grails.org/doc/latest/guide/scaffolding.html,但是,我无法将其设置为给定的属性。我想知道我能够完成它吗?教程会有所帮助。

2 个答案:

答案 0 :(得分:0)

Grails中的脚手架插件并非旨在处理开箱即用的这些类型的复杂视图。您有几个选择:

  1. 使用install-templates命令修改脚手架模板以满足您的需求。

  2. 重新设计您的域类,以使用嵌入式AuthorPublisher。这将改变脚手架输出,但它也会改变很多。除非您了解这将对您的域模型进行的所有更改,否则我不会使用此选项。

  3. 使用脚手架生成代码,然后自定义输出以满足您的需求。

  4. 在这里提出的三个选项中,我会推荐第三个选项,因为它最有意义地解决你问题的狭窄范围。

答案 1 :(得分:0)

您也可以使用瞬变。但默认情况下不会显示瞬态。

您需要modify the templates并使用约束(即id

)明确隐藏其他隐藏字段

注意:以下代码未经测试,仅供参考。

//optional, but allows code completion in IDE ;-P
String authorName

String getAuthorName(){
   return a.firstName + ' ' + a.lastName
}

static transients = [authorName:String]

static constraints = {
   id(display:false)
}