2010-08-14 3 views
0

J'essaie de faire un exemple d'un petit site de réseautage, et lorsque je me connecte un utilisateur, il devrait rediriger et afficher son profil, mais j'ai l'erreur suivante:NoMethodError après ouverture de session sur le site Web de mise en réseau Ruby on Rails

NoMethodError in User#index

Showing app/views/user/index.html.erb where line #5 raised:

undefined method `screen_name' for nil:NilClass Extracted source (around line #5):

2: Your basic information 3: 4:

    5:
  • Screen name: <%= @user.screen_name %>
  • 6:
  • Email: <%= @user.email %>
  • 7:
  • Password: **********
  • 8:

Merci beaucoup à l'avance!

Répondre

1

Votre objet @user est "nul". Vous devez vous assurer que vous définissez @user, par ex. via un "before_filter".

+0

Dans mon contrôleur? Je possède ce deux: @user = User.new (params [: user]) et user = User.find_by_screen_name_and_password (@ user.screen_name, @ user.password) – noloman

+1

User.new ne crée pas d'enregistrement . Vous devez utiliser créer ou associer nouveau + enregistrer. Si l'enregistrement n'existe pas, find_by_XXXX retournera zéro. Donc, pas vraiment sûr si vous exécutez vraiment ces deux-dos-à-dos, mais si oui, cela ne fonctionnera pas pour vous. – nirvdrum

+0

Très bien, il a été résolu avec un simple @user = User.find (session [: user_id]). Néanmoins, maintenant que j'appuie sur le bouton de connexion pour connecter un utilisateur, je ne suis jamais redirigé vers le profil de l'utilisateur. Je pense que je vais devoir passer un peu plus de temps avec ça, merci beaucoup! – noloman

Questions connexes