2010-10-18 2 views
0

Je suis en train de faire le tutoriel Ruby on Rails par Michael Hartl.Ruby on Rails Connexion automatique après l'inscription mène à l'écran des utilisateurs vides

Actuellement, je suis sur cette partie du PDF, http://railstutorial.org/chapters/sign-in-sign-out#sec:sessions

Mon problème est ...

Lors de la signature d'un nouvel utilisateur la fonction de code correctement en créant un nouvel utilisateur et la signature automatiquement utilisateur. Cependant, je rencontre des problèmes après cela. Au lieu d'afficher la page des utilisateurs ou de rediriger certains endroits, je ne peux rediriger vers aucune page et je suis bloqué sur un écran vide localhost: 3000/users.

Cela semble être le problème, mais ce n'est probablement pas le cas.

def create 
    @user = User.new(params[:user]) 

    respond_to do |format| 
     if @user.save 
     sign_in @user 
     flash[:success] = "Welcome to the Sample App!" 
     redirect_to users_path 
     else 
     render 'new' 
     end 
    end 
    end 

S'il vous plaît laissez-moi savoir si d'autres informations pourraient être utiles.

Merci beaucoup.

+0

Qu'écrit-il dans le fichier journal? (log/development.log) – zetetic

+0

Avez-vous défini l'action d'index de UserController avec sa vue? – shingara

Répondre

3

Vous utilisez un bloc respond_to: format et vous ne fournissez aucun format. Vous avez seulement besoin d'un bloc de format si vous voulez que votre action se comporte différemment pour différents formats de requête: par exemple pour html normal vs javascript/ajax. Alors, que ce soit fossé le bloc de format comme si

def create 
    @user = User.new(params[:user]) 
    if @user.save 
     sign_in @user 
     flash[:success] = "Welcome to the Sample App!" 
     redirect_to users_path 
    else 
     render 'new' 
    end 
    end 

ou mettre votre code dans un bloc HTML:

def create 
    @user = User.new(params[:user]) 

    respond_to do |format| 
     format.html { 
     if @user.save 
      sign_in @user 
      flash[:success] = "Welcome to the Sample App!" 
      redirect_to users_path 
     else 
      render 'new' 
     end 
     } 
    end 
    end 

Le premier est probablement bien pour vous.

+0

Merci pour votre aide. – wonderpus

+0

Votez-moi et cochez moi alors :) –