2012-11-14 33 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]}',并在视图中使用该实例。如果您使用脚手架,则只能覆盖这一个动作。 –

相关问题