私は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>