2012-12-28 2 views
0

home.html.erb 파일에 다음 코드가 있습니다.레일의 사용자 역할에 따라 표시하고 숨기기

<!-- if seeker is logged in show button "Grab it" --> 
<% if user_signed_in? %> 
<div class="grabit alignright"> 
<small>want to work on this?</small> 
<!-- if seeker is not logged in, show him the output text of "Sign in to work on this job" --> 
<% else %> 
<small>are you a guru? want to work on this? Sign up.</small> 
<% end %> 
</div> 

이제 알겠지만 나는 Seeker를 사용자 역할로 삼 으려합니다. 해당 역할 유형의 사용자 유형이 로그인되어 있는지 여부에 따라 다른 내용이 표시됩니다.

Devise + CanCan을 설치했습니다. 지금은 이것에 아주 새롭고 나는 이것을하는 방법을보기 위해 온통 보았다. 나는 사용자의 정상적인 역할을 가진 "사용자"와 탐색자 역할을 가진 "탐색자"를 가질 것이다. 위 코드는 사용자가 로그인 한 경우에만 표시되지만 탐색기는 표시하지 않습니다.

seekers_signed_in과 같은 간단한가요? 내가 사용해야한다고? user_signed_in에 비교 하시겠습니까? 사용자와 구직자 및 관리자 모두에 대해 Devise보기를 생성했습니다. 관리자는 사용자 및 구직자를 삭제, 업데이트 할 수 있습니다. 사용자가 항목을 게시하고 찾는 사람이 가져옵니다.

아무도 도와 줄 수 있습니까?

답변

0

사용자를 만들 필요가 없습니다. Seekers (2 가지 모델) 대신 하나의 모델 만 만들어서 User라고 부르고 필요한만큼 많은 역할을 추가 할 수 있습니다.

나는 쉬운 역할 구성이 gem를 사용하는 것이 좋습니다 그리고

home.html.erb 당신은 단순히 다음을 수행하십시오 위의 접근 방식은 간단하고 직접적인 그래서,

<!-- if seeker is logged in show button "Grab it" --> 
<% if user_signed_in? && current_user.is_seeker? %> 
<div class="grabit alignright"> 
<small>want to work on this?</small> 
<!-- if seeker is not logged in, show him the output text of "Sign in to work on this job" --> 
<% else if !user_signed_in?%> 
<small>are you a guru? want to work on this? Sign up.</small> 
<% else%> 
<small>You are not a seeker, you need to be a seeker!</small> 
<% end %> 
</div> 

캉캉이 컨트롤러 레벨에서 사용된다 당신의 경우.

도움이되기를 바랍니다.

+0

안녕하세요, Seekers와 사용자가 다른보기를 사용하는 방식으로 작동합니까? 그냥 간단한 home.html.erb 페이지가 아닌가? -감사! – user1924165

+0

user_signed_in에 액세스 할 수 있으니? && current_user 어떤 뷰에서든지, current_user가 seeker인지 아닌지를 확인할 수 있습니다. 모든 app에 사용 된 하나의 User 모델이 쉬운 역할의 보석을 체크했는지 기억하십니까? – simo

관련 문제