2013-09-24 2 views
0

J'utilise gem devise. Et j'ai écrasé le contrôleur d'enregistrement des schémas et tout s'est très bien passé, mais le problème est le chemin de redirection après l'enregistrement. Qu'est-ce que je veux faire est après l'utilisateur enregistré, il redirige vers profile_path, mais ce que j'ai maintenant est l'utilisateur doit se connecter avant de rediriger vers le profil de chemin. Comment puis-je résoudre cela? Voici mon contrôleur de registre:Ruby on Rails: Chemin de redirection après sign_up concevoir

class RegistrationsController < Devise::RegistrationsController 
    def new 
    super 
    end 

    def create 
     @user= User.new(params[:user]) 
     if @user.save 
    redirect_to profile_path, notice: 'User was successfully created.' 
    else 
    render action: "new" 
    end 

    end 

    def update 
    super 
    end 
end 

Et ceci est mon contrôleur d'application qui contrôlent le chemin après l'inscription et vous connecter:

class ApplicationController < ActionController::Base 
    protect_from_forgery 

    def after_sign_in_path_for(resource) 
     if request.path !~ /^\/admins\//i 
      resource.sign_in_count <= 1 ? '/profile' : root_path 
     end 
    end 
end 

Avant priorité sur le contrôleur registre, redirect après inscription est allé génial. Serait vraiment heureux si quelqu'un pouvait aider. Merci.

Répondre

0

Vous devez vous connecter l'utilisateur dans votre méthode create:

if @user.save 
    sign_in(resource_name, resource) 
    current_user = @user # !! now logged in 
    redirect_to profile_path, notice: 'User was successfully created.' 
else 

Vous pouvez regarder la méthode create originale Devise::RegistrationsController pour voir comment cela fonctionne.