Ruby on rails 允许管理员查看所有页面的语法

Ruby on rails 允许管理员查看所有页面的语法,ruby-on-rails,ruby,Ruby On Rails,Ruby,如果页面是公共的,我想显示该页面。如果该页面的用户试图查看该页面,如果该页面是私有的,如果是管理员试图查看该页面 我写过 <% if @user.is_public == true || session[:user_id] == @user.id %> <%= render "public_page" %> <% else %> Private Page <%end%> 私人网页 我不知道如何在混合中加入下面这样的东西。有什么想法

如果页面是公共的,我想显示该页面。如果该页面的用户试图查看该页面,如果该页面是私有的,如果是管理员试图查看该页面

我写过

 <% if @user.is_public == true || session[:user_id] ==  @user.id %>
 <%= render "public_page" %>
 <% else %>
 Private Page
 <%end%>

私人网页
我不知道如何在混合中加入下面这样的东西。有什么想法吗

<% unless session[:site_admin] %>


其目的是允许站点管理员查看所有私人页面。

只需将检查添加到if:

<% if @user.is_public == true || session[:user_id] ==  @user.id || session[:site_admin] %>
  <%= render "public_page" %>
<% else %>
  Private Page
<%end%>

私人网页
顺便说一句,命名
的更为ruby的方法是\u public
方法是
public?


顺便说一句,如果你的项目很大,你需要可靠的权限管理,那么使用Desive gem和CanCanCan相结合是一个很好的实践。然后在一个地方定义所有权限,
models/ability.rb
,并使用
can?检查权限:阅读,@post

“公共页面”是问题页面的一部分,而私人页面是向无权访问它的用户显示的文本吗?