2016-12-28 70 views
0

相對較新的軌道,我有一個簡單的Web應用程序使用Devise用戶認證。一個屬性是:admin布爾值,對於大多數用戶設置爲nil,我將在控制檯中手動更改爲true,以供少數用戶需要具有管理訪問權限。設計:限制頁面訪問使用用戶屬性

我的問題是:我應該如何限制訪問特定頁面給管理員訪問標記爲true的人?

我已經嘗試了一些邏輯,在我pages_controller,但它似乎並不重定向我根據需要(指user_list部分):

class PagesController < ApplicationController 
     before_action :authenticate_user!, :except => [:welcome] 

    def welcome 
    #code removed for brevity's sake 
    end 

    def dashboard 
    #ditto 
    end 

    def user_list 
    unless 
    current_user.admin == true 
     redirect_to pages_dashboard_path 
    else  
     @users = Users.all 
    end 

    end 
end 

任何建議對我的方向或目標否則限制訪問我的user_list頁面將不勝感激。

+0

redirect_to pages_dashboard_path並返回。 –

回答

0
在控制器

,你可以做這樣的事情

class PagesController < ApplicationController 
    ... 
    def user_list 
    if current_user.admin == true 
     @users = Users.all 
    else 
     render :not_an_admin 
    end 
    end 
end 

你無法將它們發送到他們沒有獲得

在同一個頁面,您可以選擇呈現一個新的觀點

0

在您的user_list方法中,型號名稱應爲singular

def user_list 
unless 
    current_user.admin == true 
    redirect_to pages_dashboard_path 
else  
    @users = User.all 
end 
end