2010-05-27 6 views
1

Je suis en train de faire à l'utilisateur de revenir à la page qu'ils cherchaient à avant de cliquer sur « Se connecter »Rails redirections avec les nouveaux utilisateurs et les connexions

C'est ce que je suis arrivé dans mon contrôleur d'application de l'utilisateur:

def redirect_back_or_default(default) 
    redirect_to(session[:return_to] || default) 
    session[:return_to] = nil 
end 

Et voici ce que j'ai dans mon contrôleur de sessions:

def new 
    @user_session = UserSession.new 
    session[:return_to] = request.referer 
    end 
    end 

    def create 
    @user_session = UserSession.new(params[:user_session]) 
    if @user_session.save 
     flash[:notice] = "Login successful!" 
     redirect_back_or_default(home_path) 
    else 
     render :action => :new 
    end 
    end 

cela fonctionne bien la plupart du temps, mais si un utilisateur se connecte à juste après leur inscription sur le site, ils seront redirigés à une page blanche. J'imagine que c'est l'action "créer" parce que c'était la dernière action avant d'aller à des sessions utilisateur nouvelles.

J'ai donc essayé ceci:.

def new 
    @user_session = UserSession.new 
    unless request.referer == join_path 
    session[:return_to] = request.referer 
    end 
    end 

Et cela essaie de me ramener à la page de connexion après que je me connecte

Ce que je voudrais vraiment faire est d'avoir l'utilisateur de voir leur profil quand ils se connectent pour la toute première fois.

Cela ne me donne pas un nom d'utilisateur et soulevé une erreur de routage

def create 
    @user_session = UserSession.new(params[:user_session]) 
    if @user_session.save 
     flash[:notice] = "Login successful!" 
     redirect_back_or_default(user_path(current_user)) 
    else 
     render :action => :new 
    end 
    end 

Tout le monde à travers ces acrobaties disparu redirigeant avant? Je n'arrive pas à le faire fonctionner. J'utilise authlogic si cela aide.

Répondre

Questions connexes