Grails - 如何使用模型约束创建表示belongsTo的下拉列表?

时间:2009-12-17 19:13:53

标签: grails

我正在学习grails,我遇到了问题。

我有两个课,让我们说:

    class Book {

      String name
      String description
      static belongsTo = Category
      Category category

      static constraints = {
           name(nullable:false, blank:false)
               description(nullable:true, maxSize:5000)
      }

   class Category {

      String name
      static hasMany = [books:Book]
      Set books
      static constraints = {
              name(nullable:false, blank:false)
      }

      String toString(){
              this.name
      }
   }

当我创建一本书时,我希望看到一个包含所有类别名称的下拉列表。 如果我没有选择一个类别,那么我就无法创建该书。 如果数据库中没有类别,那么我应该无法创建一本书, 直到我创建并选择一个类别。

如果我有正确的约束和字段,是否可以从域类生成此功能(使用grails generate-all)?如果是,怎么样?

1 个答案:

答案 0 :(得分:5)

我可能会离开这里,但我认为您的belongsTo语句的格式不正确。在我见过的例子中,我用过的类是:

static belongsTo = [category:Category]

然后我相信你还需要将Category设置为nullable:false

static constraints = {
           name(nullable:false, blank:false)
           description(nullable:true, maxSize:5000)
           category(nullable:false)
      }

这至少应该生成视图的下拉列表并禁止创建没有类别的书籍。