0

我正在尝试在我的 grails 应用程序中创建自己的“编辑”表单。

我的 g:select 当前填充了我数据库中的内容,如下所示:

<g:select name="nameList" from="${Card.list()}" value="${name} "  />

然后是值:

 <g:field name="amount" type="number" value="" required=""/>

我的域只有两个变量 - 名称和数量。我想从下拉框中选择项目,输入金额并单击“更新”,我的更新方法是由 grails 生成的默认方法,因此它需要 ID 和版本,我将如何通过它?

我的更新按钮;

<g:actionSubmit class="save" action="update" value="${message(code: 'default.button.update.label', default: 'Update')}" />

我的域代码:

package cardstorage
class Card {
    String name;
    int amount;

    static constraints = {

        name(blank:false);
        amount(blank:false);
    }
    String toString(){
        return name;
    }
}

谢谢

4

1 回答 1

0

我已经修复了它,但我确信这不是正确的方法。

<g:form method="post" >

       <g:select name="card" from="${Card.list()}" optionValue ="name" optionKey="id" />

      <g:field name="amount" type="number" value="" required=""/>

        <fieldset class="buttons">
    <g:actionSubmit class="save" action="update" value="${message(code: 'default.button.update.label', default: 'Update')}" />
</fieldset>
</g:form>

这就是我的 g:select 代码。在我的 Controller 方法中,将“card”的值传递给“Long id”将导致“id”为 49(null + 1 = 49?)

def update(Long id, Long version) {

    id = params.card;
    id = id- 48;
  ...  
}

现在我可以更新我的记录了,但是我很好奇我应该如何更正确地做到这一点。

于 2013-09-09T15:49:09.760 回答