사용자가 자신의 사용자 이름을 변경할 수있는 설정 페이지를 만들고 있습니다. 이상한 것은 주보기 및 양식에 표시하는 데 동일한 finder 메서드를 사용하지만 개체가 서로 관련이 없다는 것입니다.Model.find가 동일한 객체 참조를 반환합니다.
사용자 이름을 입력하고 저장을 클릭하면 부작용이 생깁니다. 두 개체가 모두 업데이트됩니다. 또한 잘못된보기에 표시됩니다.
단지 별도의 형태로 사용하고 싶습니다. 여기서 내가 뭘 잘못하고 있니? 나는 "Model.find"를 호출하면 매번 객체의 다른 참조가 반환된다고 생각했다. 여기서 지능적인 캐싱을하고있는 플레이인가?
폼에서 사용자를 변경하는 것은보기에서 다른 모든 동일한 사용자 개체를 변경한다는 것을 의미합니다.
은/편집을 만들 페이지 렌더링작업 :
public static User findUser(UserId userId){
User user = User.find("externalId = ? and provider = ?", userId.id, userId.provider.name()).first();
return user;
}
감사
:${models.User.findUser(user.id).username}
내 모델 (사용자 이름 로그인 전류를 표시하는)
public static void index(){
User appUser = User.findUser(SecureSocial.getCurrentUser().id);
render(appUser);
}
내보기