2010-08-17 37 views
1

我正在使用寧靜身份驗證插件來爲我正在構建的應用程序對用戶進行身份驗證。正如在用戶訪問主頁時的大多數優秀網站中,我想展示一個樣板歡迎頁面並且可以選擇登錄或註冊。但是,當用戶登錄時,我希望網站的根網址(即sitename.com)顯示用戶儀表板而不是標準問候頁。我假設這只是使用佈局文件和檢查用戶是否登錄?但它的邏輯似乎在困擾着我。提前謝謝了。根據Rails中的登錄狀態顯示不同的主頁

回答

2

我會這樣做:你會有你的main控制器,其中未登錄的用戶可以訪問,然後第二個控制器(我們稱之爲admin/main),這是登錄用戶的主頁面。

main控制器的index動作(假設你只是想重定向index操作;否則,你可以使用一個before_filter):

class MainController < ApplicationController 
    def index 
    redirect_to :controller => 'admin/main', :action => 'index' and return if logged_in? 
    end 
end 

這樣一來,如果登錄用戶試圖訪問應用程序的根URL,它們將被自動重定向到網站的登錄區域(但URL不會更改)。

0

您可以檢查用戶是否在登錄操作時已經登錄,是否重定向到儀表板操作。如果他們不是那麼你可以繼續登錄正常。例如。在你的會話控制器

def new 
    if logged_in? 
    redirect_to :controller => 'dashboard', :action => 'index' 
    end 
end 

你也可以做一個的before_filter避免「污染」你的登錄操作。例如。

before_filter :logged_in_users_go_to_dashboard, :only => [:create, :new] 

def logged_in_users_go_to_dashboard 
    redirect_to(:controller => 'dashboard', :action => 'index') if logged_in? 
end 
相關問題