2013-02-07 87 views
0

我有一個標準的設計實現,並且在其他模型中,如果會話過期,似乎沒有重定向,從而給用戶留下錯誤消息。Rails在多個模型上設計了授權集合

例如,如果用戶配置文件頁面未登錄,它將只顯示錯誤,因爲current_user不存在。

我是否在每個模型中設置聲明爲授權。或者更好的解決方案,我可以在應用程序控制器中設置它,並在應用程序範圍內進行設置,並在必要時簡單設置任何公共頁面?

回答

0

如果你想要一個特定的控制器來檢查用戶是否登錄,那麼你想使用Devise的authenticate_user!功能。見下面

class StuffController < ApplicationController 
    before_filter :authenticate_user! 
    def index 
    ..... more implementation 
    end 
end 

例如如果不記錄用戶在他們成功登錄

0

使用過濾器之前如before_filter :authenticate_user!後,被重定向到登錄表單,然後到所需的頁面。將其放置在應用程序控制器中。 authenticate_user!是一個設計助手,所以如果你想要自定義行爲,你可以重載方法或者簡單地使用他們的user_signed_in?輔助方法編寫你自己的過濾器。