2009-11-23 7 views
1

Je suit un tutoriel: http://visionmasterdesigns.com/tutorial-create-a-login-system-in-ruby-on-rails/ pour créer une page de connexionavec la page de connexion rubis sur des rails

lorsque je tente de faire cette partie:

def authenticate 
02.  #User.new(params[:userform]) will create a new object of User, retrieve values from the form and store it variable @user. 
03.  @user = User.new(params[:userform]) 
04.  #find records with username,password 
05.  valid_user = User.find(:first,:conditions => ["user_name = ? and password = ?",@user.user_name, @user.password]) 
06. 
07.  #if statement checks whether valid_user exists or not 
08.  if valid_user 
09.  #creates a session with username 
10.   session[:user_id]=valid_user.user_name 
11.  #redirects the user to our private page. 
12.   redirect_to :action => 'private' 
13.  else 
14.   flash[:notice] = "Invalid User/Password" 
15.   redirect_to :action=> 'login' 
16.  end 
17.end 

et l'exécuter avec un nom d'utilisateur correct et connexion, il me dit que

ActiveRecord :: RecordNotFound à UsersController # privé

Impossible de trouver l'utilisateur avec ID = private

Je veux qu'il rediriger vers la page private.html.erb pas le chercher!

Merci pour toute aide

+0

Avez-vous une méthode "privée" dans votre contrôleur? –

+0

À quelle étape êtes-vous dans le tutoriel? L'étape 7 ajoute une méthode privée au contrôleur. – StevenWilkins

+0

afaik la méthode privée dans le contrôleur est juste pour s'assurer que seuls les utilisateurs connectés peuvent accéder à la page private.html.erb – Lilz

Répondre

3

Je pense que vous voulez render :action => 'private' au lieu d'une redirection.

+0

MERCI BEAUCOUP! TRÈS TRÈS APPRECIÉ! – Lilz

Questions connexes