2013-11-14 6 views
0

내 시스템에는 모든 사용자가 자신의 공개 프로필을 가지고 있습니다. 현재 로그인 한 사용자의 프로필 페이지에만 "편집"버튼을 표시하고 싶습니다. 는 지금은 userProfile 현재 페이지의 소유자 사용자입니다이 코드Deadbolt : 현재 로그인 한 사용자 만 템플릿 부분 표시

@subjectPresent() { 
    @if(userProfile == userLogged){ 
     <button>Edit</button> 
    } 
    } 

를 사용하여이 작업을하고 있어요 및 userLogged는 실제 로그인 한 사용자입니다.

이 검사를 여러 번 수행해야한다는 것을 고려하여 Deadbolt 또는 Scala에서 더 나은 (클리너) 방법을 사용하고 있습니까?

답변

1

David가 제안했듯이 이것을 자신의 태그에 넣을 수 있습니다. 태그는 단지 함수이며 다른 뷰와 유사합니다 (실제로는 다른 뷰입니다).

당신은

@(userProfile: User, userLogged: User)(body: => Html) 

@subjectPresent() { 
    @if(userProfile == userLogged){ 
    @body 
    } 
} 

같은 것을 시도하고 그런 다음

@foo(userProfile, userLogged) { 
    <button>Edit</button> 
} 
당신은해야합니다

이것을 사용할 수 있습니다

foo.scala.html라는 파일이 저장할 수 있습니다 필요한 경우 올바른 유형 선언 또는 가져 오기를 사용하십시오. 사용자, 태그 가져 오기 등. 이는 프로젝트의 구조에 따라 다릅니다.

+0

굉장, 고마워! –

0

궁극적으로 위의 코드에서 수행하는 것과 동일한 논리 검사를 수행해야하므로 "현재"사용자를 받아 들여 두 가지 테스트를 수행하는 새로운 "태그"(다른보기)를 만들 수 있습니다 . SubjectPresentAction의 확장과 같이 컨트롤러 쪽에서 사용하는 것과 유사한 것을 만들 수도 있습니다.

+0

안녕 데이비드, 좋은 지적 같습니다. 더 잘 이해하기 위해 예제 코드를 게시 할 수 있습니까? 매우 도움이 될 것입니다. 감사합니다 –