2010-08-17 41 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 
相关问题