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.