2011-09-05 8 views
-1

내 컨트롤러에이 코드가 있다면 어떻게 admin_user를 정의 할 수 있습니까?레일즈 : def admin_user

def current_user 
    @current_user ||= User.find(session[:user_id]) if session[:user_id] 
end 
helper_method :admin_user 

admin_user는 ID가 1 인 사용자 여야합니다.

다음과 같이 사용하고 싶습니다.

<% if admin_user %> content for admin only< %elsif current_user%> content for admin and other logged in users <% end %> 

추신. CanCan 또는 다른 보석을 사용하고 싶지 않습니다.

+0

약간의 냄새가 아닌가요? 왜 사용자 모델에 부울 관리 플래그가 없습니까? 그렇게하면 두 명 이상의 관리자를 보유 할 수 있습니다. –

답변

0

이와 비슷한? 사용자 모델에서

어쩌면
# checks to see if current_user exists, and if so, has id 1 
def admin_user? 
    current_user && current_user.id == 1 
end 
+0

감사합니다.이게 내가 원하는 것입니다. –

+0

논리 설명을위한 추가 감사, 그것은 나를 위해 유용합니다. –

1
def admin_user 
    current_user.try(:id) == 1 
end 

이 작동해야하지만, IMHO는별로 좋지 않습니다.

+0

ruby ​​<1.9 – numbers1311407

+0

상자가 작동하지 않음에 유의하십시오. ("(". –

+0

에 예기치 않은 구문 오류가 있습니다. 질문이 의심 스럽기 때문에 방금 시도했습니다. ... – lucapette

0

:

def is_admin? 
    self.user_id == 1 
end 

그런 다음

current_user.is_admin과 같이 호출 할 수 있습니다?

+0

고마워요,하지만 다른 것을 원했습니다 (관련에서 이걸 봤습니다 :) –

관련 문제