2009-12-17 37 views
3

我在學Grails,我有一個問題。Grails - 如何用模型約束創建表示belongsTo的下拉列表?

我有2個班,讓說:

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)?如果是,如何?

回答

6

我可以在這裏,但我認爲您belongsTo語句的格式不正確。在我見過的例子和類我用它已經:

static belongsTo = [category:Category] 

那麼我相信你也需要有類別設置可空:假

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

這至少應該產生視圖上的下拉菜單並禁止創建沒有分類的圖書。

+0

它的工作原理,謝謝! 這是如此明顯,愚蠢的我想念它。 – andreiursan 2009-12-17 20:11:50