2012-09-04 57 views
1

我有兩個領域:一對多(或一個)級聯創建視圖

class A { 
String name 
B b 
} 

class B { 
String code 
} 

我使用默認的腳手架。當我進入A列表視圖時,我無法創建A instace,因爲我錯過了B實例;這裏的gsp

<g:if test="${B?.list()}"> 
</g:if> 
<g:else> 
    <g:link class="create" action="create" controller="b"> 
     <g:message code="default.new.label" args="['b']" /> 
    </g:link> 
</g:else> 

如果我點擊創建B鏈接,我能夠創建一個B實例,但我失去了「連接」到我創建的A對象。 在這種情況下有一種很好的方式來支持用戶? 一個想法可能會打開模式框中的創建B鏈接,可能是?

回答

0

就在A的ID添加到PARAMS:

<g:link class="create" action="create" controller="b" params="[ 'a.id': aInstance.id ]"> 

的關鍵只是適應關係屬性域中B類

+0

我發現周圍的工作:一個創建鏈接隱藏和創建B顯示(有警告)如果沒有B實例存在。 使用湯姆解決方案我必須有一個a.id,但我正在創建一個實例,它還沒有被持久;這樣對嗎? – Mcgyver83

+0

從你的描述中我明白了,A的實例已經存在(A的列表)。如果實例尚不存在,那麼我的解決方案不可用。我需要創建兩個域,可以使用Commands對象和特殊操作,它使用Command對象中的數據並創建A和B實例。 –