如果页面是公开的,我想显示页面。如果该页面的用户正在尝试查看该页面(如果该页面是私有的),并且该管理员试图查看该页面。
我写过
<% if @user.is_public == true || session[:user_id] == @user.id %>
<%= render "public_page" %>
<% else %>
Private Page
<%end%>
我不知道如何添加类似下面的内容。有什么想法吗?
<% unless session[:site_admin] %>
目的是允许网站管理员查看所有私人网页。
答案 0 :(得分:0)
只需将支票添加到if:
<% if @user.is_public == true || session[:user_id] == @user.id || session[:site_admin] %>
<%= render "public_page" %>
<% else %>
Private Page
<%end%>
顺便说一下,命名is_public
方法的 ruby 方式越public?
顺便说一句,如果您的项目很大并且您需要可靠的权限管理,那么将Devise gem与CanCanCan结合使用是一种很好的做法。然后,您可以在一个位置models/ability.rb
定义所有权限,并使用can? :read, @post
检查权限。