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}"/>