2012-11-14 88 views
0

Im再次卡住。它來自一個紅寶石背景非常令人沮喪。Grails中的3個域名,我想訪問第二個域的第二個域的第二個域的視圖

我有3個域名。域A有許多域B。域A有許多域C的

我希望能夠訪問域B的視圖中的域C的記錄,以便用戶可以選擇域C模板,並將它插入到域B的編輯/創建字段的文本區。很明顯,這將在JavaScript之後。

故事 - 用戶創建附加到投資組合的出版物。用戶在創建或編輯發佈時可以選擇要插入到發佈中的模板。用戶應該能夠從分配給投資組合的模板列表中進行選擇,並且當他們從列表中選擇一個模板時,它可以在編輯或創建過程中自動插入該出版物的textarea。

我的問題是我無法讓域C在域B視圖中加載任何結果。一點都沒有。我已經嘗試過g:select,g:link,href,我試過的東西看起來可以得到任何結果。

視圖/控制器是生成的標準模板。

我的域/型號如下

class Portfolio { 

    static hasMany = [publications:Publication, pubtempl: Templatepublication] 

class Publication { 

    static belongsTo = [portfolio: Portfolio] 

class Templatepublication { 

    Cstatic belongsTo = [portfolio: Portfolio] 

編輯:

這是正在使用

<g:select name="templatepublication.id" 
from="${spotlight.pubtemplates.Templatepublication.list()}" 
optionKey="id" required="" 
value="${portfolioInstance?.pubtempl?.id}" class="many-to-one"/>` 
+2

你如何使用它們獲得訪問權限?你嘗試過'B.portfolio.pubtempl'嗎? –

+0

我想伊戈爾和維克多回答了我的問題。你們兩個都回答了我的問題。你會把這個鏈接稱爲grails嗎? – IanN

回答

1

什麼正在嘗試做的 「域B視圖」 普惠制頁標籤?你能發佈你的視圖代碼嗎?

是否這樣? (我主要複製了grails documentation example

<g:select name="bInstance.a.c.id" 
     from="${C.list()}" 
     value="${bInstance.a?.c?.id}" 
     optionKey="id" /> 
+0

是的,我使用了doc示例,但我一直試圖從A中獲取params,而B正在編輯中,並且認爲我可以將它傳遞給ACid,並且不在名稱或值中使用bInstance – IanN

+1

然後,您還需要傳遞一個A實例作爲控制器操作的模型:'def edit(){... return [bInstance:someB,aInstance:someA]}',並在視圖中使用該實例。如果您使用腳手架,則只能覆蓋這一個動作。 –

相關問題