-1

このように多対1の関係N:1を作成しました

class Score {
    Double value
    Criteria criteria
    static belongTo = [criterias: Criteria]
}

class Criteria {
    String name
}

g:selectだから私の問題は、特定の基準名のスコアをデータベースに保存するために使用したいということです。私はこのフォームを持っています

   <g:form controller="audition" action="assignScore">

    <label for="vocal" class="control-label">vocal</label>
    <div class="controls">
        <g:select  from="${['0','10','20','30','40','50','60','70','80','90','100']}" name="vocal" value="score"   noSelection="['':'-choose Score please-']"/>
        <span class="help-inline">${hasErrors(bean: contestantInstance, field: 'vocal', 'error')}</span>

</div>

    <label for="stage" class="control-label">stage</label>
    <div class="controls">
        <g:select  from="${['0','10','20','30','40','50','60','70','80','90','100']}" name="stage" value="score"   noSelection="['':'-choose Score please-']"/>
        <span class="help-inline">${hasErrors(bean: contestantInstance, field: 'stage', 'error')}</span>

</div>
       <div class="form-actions">
           <g:submitButton name="save" class="btn btn-primary" value="save" />
           <button class="btn" type="reset">Cancel</button>
       </div>

   </g:form>

そしてコントローラのアクション

 def assignScore = {
    //find a criteria  name
  def criteriaInstance =  Criteria.findByNameLike(params.vocal)  ?: new Criteria(name: "vocal").save(flush: true)
    if (params.vocal == "vocal"){
    def score = new Score()

        score.properties=params.vocal


        criteriaInstance.addToScores(score)
        criteriaInstance.save(flush: true)
    }

    def criteriaInstanceStage =  Criteria.findByNameLike(params.stage)  ?: new Criteria(name: "stage").save(flush: true)

    if (params.stage == "stage"){
        def score = new Score()
        score.properties=params.stage

        criteriaInstanceStage.addToScores(score)
        criteriaInstanceStage.save(flush: true)
    }


}

問題は、特定の基準に関連付けられたスコアを保存できないことです

4

1 に答える 1

1

g:selectを問題なく使用できるドキュメントを参照してください。

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

Criteriaは予約語である可能性があることに注意してください。

于 2013-03-18T16:55:40.870 に答える