0

我环顾了一下rails中的block helpers,但我比开始的时候更加困惑。我的目标是创建一个这样的助手

<% 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 分别是管理和管理员角色。
如何创建此块助手?

4

1 回答 1

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

我也会考虑阅读它,因为它讨论了块助手的一个有趣结果。

于 2013-08-05T19:05:55.843 回答