2010-10-26 5 views
0

Je suis très nouveau à Rails. Je commence mon processus d'apprentissage en listant d'abord tous les utilisateurs.Résolu: Liste des utilisateurs dans les rails + erreur de modèle

FIrst i avait ajouté une action dans le contrôleur comme

def list_users 
    @users=User.find(:all) 
end 

Et dans la vue users/list_users.html.erb i ont ajouté la ligne

list_users.html.erb:

<%= Time.now %> 

<% @users.each do |user| %> 
    <%= user.firstname %> 
<% end %> 

Et pour le routage, j'ai ajouté les routes comme

map.list_users '/list_users', :controller => 'users', :action => 'list_users' 

Thats it .. quand je lance mon application, sa me montrant l'erreur comme

 Development mode eh? Here is the error - #<ActionView::TemplateError: 
    ActionView::TemplateError (You have a nil object when you didn't expect it! 
     You might have expected an instance of Array. 
     The error occurred while evaluating nil.each) on line #7 of app/views/users/list_users.html.erb: 

Pourquoi donc ?? S'il vous plaît donner quelques suggestions ..

Solution:

je me trouve que l'action du contrôleur est sous protégé, c'est pourquoi il m'a montré l'erreur. Désolé de poser une question stupide Merci pour l'aide de tout le monde.

+0

Vous appelez une méthode qui n'existe pas, comme les états d'erreur. Sans plus de contexte, c'est tout ce que n'importe qui pourra vous dire. –

Répondre

1

Il semble que vous n'avez pas utilisé la méthode login dans list_users.html.erb, où l'avez-vous utilisé?

Mais voici une autre erreur (peut-être erreur typo seulement?)

<% @users.each do |user| %> 
    <%= user.firstname # not @user here! %> 
<% end %> 
+0

Encore je reçois la même erreur .. Vous pourriez avoir prévu une instance de tableau. L'erreur est survenue lors de l'évaluation de nil.each) sur la ligne n ° 7 de app/views/users/list_users.html.erb: - ​​MEME APRES AVOIR CHANGE LE USER @ user.firstname .. – useranon

+0

Donc, il se plaint '@ users' null ... Pourriez-vous fournir plus de codes dans votre contrôleur et vous afficher? – PeterWong

Questions connexes