我有一個before_filter
叫check_login
,看起來是這樣的:如何在rails中根路線不應用before_filter?
def check_login
if not session[:user_id]
flash[:error] = "Please log in to continue"
redirect_to login_path
end
end
然後我把這個before_filter
在我的應用程序控制器,然後排除它在我登錄控制器(帶skip_before_filter :check_login
)
的問題是當用戶第一次點擊主頁(即localhost:3000)時,它會將它們重定向到顯示flash[:error]
消息的登錄頁面。但是,對於主頁,我只想顯示登錄表單。處理這種「特殊情況」的最簡潔方法是什麼?我想將skip_before_filter
放在處理主頁的控制器中,但我不認爲這是非常乾燥的,因爲如果我更改路線文件中的主頁,我還必須更改skip_before_filter
的位置。
謝謝!