我在轨道上看了一下关于拦截器的事情,但我比起初时更加困惑。 我的目标是创建一个这样的帮手
<% needs_clearance 1 do %>
You'll see this block if your clearance is level 1, 4 or 5
<% end %>
应该产生
<% 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分别是管理和管理员角色 如何创建此块助手?
答案 0 :(得分:1)
大致是:
def needs_clearance(level, &block)
if current_user.clearance >= level
capture(&block)
end
end
块帮助程序通常如下所示,例如,在div中包装内容:
def box(&block)
"<div class='box'>" + capture(&block) + "</div>"
end
来自:http://timelessrepo.com/block-helpers-in-rails3
我也会考虑阅读它,因为它讨论了块助手的一个有趣结果。