2013-08-05 2 views
0

레일에서 블록 헬퍼에 대해 조금 둘러 보았습니다. 그러나 내가 시작했던 것보다 훨씬 혼란 스러웠습니다. 내 목표는레일에서 헬퍼를 차단하십시오.

<% if current_user.clearance.id == 1 or current_user.clearance_id == 4 or current_user.clearance.id == 5 %> 
    You'll see this block if your clearance is level 1, 4 or 5 
<% end %> 

4와 5는 각각 관리 및 관리자 역할 인 양보해야하는이

<% needs_clearance 1 do %> 
    You'll see this block if your clearance is level 1, 4 or 5 
<% end %> 

같은 도우미를 만드는 것입니다.
이 블록 도우미는 어떻게 만듭니 까?

+0

구체적인 문제는 무엇입니까? 논리를 수행하고 블록 결과를 '캡처'할 수 있어야합니다. –

+0

저는 블록 도우미를 만드는 법을 정말로 이해하지 못했고 지침으로 사용할 수있는 예제를 찾을 수 없었습니다. 누군가가 원하는 것을 만들어내는 도우미를 게시 할 수 있기를 바랬습니다. 그래서 예를 들어 사용할 수있었습니다. –

답변

1

대략 :

def needs_clearance(level, &block) 
    if current_user.clearance >= level 
    capture(&block) 
    end 
end 

블록 헬퍼는 일반적으로 사업부에서 무언가를 포장, 예를 들어, 다음과 같이 : 나는 것을 읽을 생각 하는데요 http://timelessrepo.com/block-helpers-in-rails3

:에서

def box(&block) 
    "<div class='box'>" + capture(&block) + "</div>" 
end 

블록 도우미의 흥미로운 결과에 대해서도 다룹니다.

+0

이제는 의미가 있습니다. 감사! –

관련 문제