Ruby on Rails(3)隐藏了视图的一部分

我正在开发Ruby on Rails 3 Web应用程序。

我有一个名为User的表,其名称为coulmn。 我正在寻找隐藏部分视图的最佳方法,这些用户对视图的那些部分具有“错误”角色。

例如,我希望所有用户都能够看到用户index页面,但我只希望具有角色的用户 – admin能够编辑其他用户。

所以首先我使用filter_by阻止edit操作,但我还想要的是使edit按钮不显示。

当前用户保存在会话中,因此检查用户角色非常简单。

我要问的是,除了我要隐藏的每个按钮之前的明显if语句之外,还有一种简单的方法。 我认为rails会有一种简单的方法来做这种事情,我找不到一个。

如果你想清理一下,你可以自己写一个应用程序助手:

  def if_admin(user) if(user.is_admin? && block_given?) yield return end end 

然后在你的视图中你可以写:

  <% if_admin(@user) do %>  <% end %>