2015-04-25 73 views
-1

如果頁面是公開的,我想顯示頁面。如果頁面的用戶試圖查看該頁面是否是私人的,並且該頁面是否爲管理員試圖查看該頁面。允許管理員查看所有頁面的語法

我已經寫

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

我不知道如何添加類似下面的組合。有任何想法嗎?

<% unless session[:site_admin] %> 

其目的是讓網站管理員查看所有私人網頁。

+0

'public_page'部分是該頁面的問題,而* Private Page *是向沒有權限訪問的用戶顯示的文本? – makhan

回答

0

只需檢查添加到如:

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

順便說一句,命名is_public方法的更紅寶石辦法是public?

順便說一下順便說一句,如果你的項目是很大的,你想實權限管理,將Devise gem與CanCanCan結合使用是一種很好的做法。然後,您可以在一個地方定義所有權限,models/ability.rb並使用can? :read, @post檢查權限。

相關問題