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

标签 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
      }
   }

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

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

最佳答案

我可以离开这里,但我认为您的belongsTo 语句的格式不正确。在我见过的示例和我使用过的类中,它是:

static belongsTo = [category:Category]

那么我相信您还需要将类别设置为 nullable:false

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

这至少应该在 View 上生成下拉菜单,并且不允许创建没有类别的书籍。

关于Grails - 如何使用模型约束创建一个下拉列表来表示belongsTo?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1923926/

相关文章:

mongodb - 用一些智能创建域类

hibernate - Grails 3-使用条件在字符串列表中查找字符串

java - 使用 mongodb 的 Java 驱动程序时如何限制结果数?

servlets - 在Grails 3应用程序中注册Servlet bean

Grails GORM 和枚举

Grails 2.4.x 在运行时设置 keystore

grails - 访问 Grails 域类上的字段注释

maven - Grails Release 莫名其妙地无法发布到 Nexus

grails - Grails 3:控制台插件不在生产模式下出现

grails - Grails sendmail在tomcat下的服务中失败