2017-04-14 6 views
0

私はgrails 2.4.2バージョンを使用しています。私は別のドメインクラスオブジェクトのフィールドを持っているドメインクラスを持っています。ドメインのビューを生成すると、そのクラスオブジェクトの選択ボックスが作成されます。私は選択ボックスにコメントし、ビューからコントローラにIDを渡します。私はgrailsのdomain.get()メソッドでクラスオブジェクトを追加しようとしています。しかし、コントローラのhasErrors()メソッドでは、常に検証の問題が示され、保存せずにエラーが表示されます。私がhasErrors()をコメントすると、正しく保存されます。しかし、他のフィールドの検証にはhasErrors()を使用する必要があります。誰も私を助けることができますか?grailsコントローラのhasErrors()メソッドでフィールドバリデーションを省略する方法

マイドメイン>>>

class ThanaAgent { 

    String agentName 
    DistrictAgent districtAgent 

    ... 
} 

マイコントローラー保存方法>>>

@Transactional 
def save(ThanaAgent thanaAgentInstance) { 

    if (thanaAgentInstance == null) { 
     notFound() 
     return 
    } 

    DistrictAgent districtAgent = DistrictAgent.get(Long.parseLong(params.districtAgentId)) 
    thanaAgentInstance.districtAgent = districtAgent 

    if (thanaAgentInstance.hasErrors()) { 
     respond thanaAgentInstance.errors, view: 'create' 
     return 
    } 

    thanaAgentInstance.save flush: true 

    request.withFormat { 
     form multipartForm { 
      flash.message = message(code: 'default.created.message', args: [message(code: 'thanaAgent.label', default: 'ThanaAgent'), thanaAgentInstance.id]) 
      redirect thanaAgentInstance 
     } 
     '*' { respond thanaAgentInstance, [status: CREATED] } 
    } 
} 
ここ

私はdistrictAgentなどのオブジェクトを代入しています:ここでは以下の私のコードです。

私の見解ではなく、選択>>>

<div class="form-group"> 
     <label>District Agent</label> 
     ... 
     <g:hiddenField name="districtAgentId" id="districtAgentId" 
         value="1"/> 
     %{--<g:select id="districtAgent" name="districtAgent.id" from="${book.DistrictAgent.list()}" optionKey="id" required="" value="${thanaAgentInstance?.districtAgent?.id}" class="form-control"/>--}% 
    </div> 

答えて

0

ああ、それはとても簡単でした。次のように選択ボックスとしてフィールドの名前を編集してください:

<g:hiddenField name="districtAgent.id" id="districtAgent" 
         value="${thanaAgentInstance?.districtAgent?.id}"/> 
関連する問題