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 %>
您可能想要使用Devise和CanCan。
这是一个RailCast教程