2015-08-29 45 views

回答

2

Devise有一個內建幫助器:authenticate_user!,您可以使用它來確保用戶已登錄。然後,您可以添加另一個before_filter以檢查所需的條件,重定向/呈現錯誤頁用戶不被允許查看該頁面。

class PagesController < ActionController 
    before_filter :authenticate_user! 
    before_filter :check_lender, :only => [<pages_to_allow>] 

    private 
     def check_lender 
      render 'errors/access_not_permitted' unless current_user.lender? 
     end 
+0

完美,謝謝! – Liroy

+1

謝謝!你剛剛保存StackOverflow的重複問題:) –

1

在提供相關頁面的控制器中,創建一個自定義方法,檢查當前用戶是否爲貸方,然後在before_action中調用該方法。例如:

class WidgetsController < ActionController 
    before_action :ensure_lender, only: [:show] 

    private 

    def ensure_lender 
    current_user.lender 
    end 
end 

這種解決方案假定您有別處定義的CURRENT_USER方法(即ApplicationController中),它返回一個用戶對象在用戶當前登錄。

+0

這兩個答案的工作,謝謝! – Liroy