2013-08-21 7 views
0

동일한 양식의 두 가지 버전이 있습니다. 하나는 "username"필드이고 하나는없는 것입니다. 구성 옵션에 따라 런타임 중에 하나를 선택합니다. 이와 비슷한 일이양식 객체 복사 및 새 필드 추가

val formWithUsername = formWithoutUsername ++ Form[FullRegistrationInfo](mapping(UserName -> nonEmptyText)) 

있습니까 : 내가 대신 쓸 수있는 경우 Please have a look here
나는 소원?

답변

1

나는 당신이 할 수 있다고 생각하지만, 당신이 그것을 필요로하지 않을 때 그것은 당신의 방식으로하지 않습니다 그래서 UserName 필드 매핑 옵션으로 만들려고하지 않습니다 경우 클래스는 해당하기 때문에

mapping(
    UserName -> optional(nonEmptyText.verifying(Messages(UserNameAlreadyTaken), userName => { 
    UserService.find(IdentityId(userName, providerId)).isEmpty 
    })), 
    ... 
) 

을 필드는 이미 선택 사항이며 아무런 해가 없습니다.

여전히 Password 매핑은 두 형식에서 동일하지 않습니다. 따라서 모두 유지해야하며 유사한 부분을 리팩토링해야합니다.