我有一個標準的設計實現,並且在其他模型中,如果會話過期,似乎沒有重定向,從而給用戶留下錯誤消息。Rails在多個模型上設計了授權集合
例如,如果用戶配置文件頁面未登錄,它將只顯示錯誤,因爲current_user不存在。
我是否在每個模型中設置聲明爲授權。或者更好的解決方案,我可以在應用程序控制器中設置它,並在應用程序範圍內進行設置,並在必要時簡單設置任何公共頁面?
我有一個標準的設計實現,並且在其他模型中,如果會話過期,似乎沒有重定向,從而給用戶留下錯誤消息。Rails在多個模型上設計了授權集合
例如,如果用戶配置文件頁面未登錄,它將只顯示錯誤,因爲current_user不存在。
我是否在每個模型中設置聲明爲授權。或者更好的解決方案,我可以在應用程序控制器中設置它,並在應用程序範圍內進行設置,並在必要時簡單設置任何公共頁面?
如果你想要一個特定的控制器來檢查用戶是否登錄,那麼你想使用Devise的authenticate_user!功能。見下面
class StuffController < ApplicationController
before_filter :authenticate_user!
def index
..... more implementation
end
end
例如如果不記錄用戶在他們成功登錄
使用過濾器之前如before_filter :authenticate_user!
後,被重定向到登錄表單,然後到所需的頁面。將其放置在應用程序控制器中。 authenticate_user!
是一個設計助手,所以如果你想要自定義行爲,你可以重載方法或者簡單地使用他們的user_signed_in?
輔助方法編寫你自己的過濾器。