2010-08-17 10 views
1

J'ai Utilisateurs. Les utilisateurs have_many: organisationsComment cela fonctionne et ne fonctionne pas dans IRB?

Si je fais:

User.find(:all).select {|u| u.organizations.first.name } 

il revient avec:

NoMethodError: You have a nil object when you didn't expect it! 
The error occurred while evaluating nil.name 
from (irb):33 
from (irb):33:in `select' 
from (irb):33 

Longue histoire courte:

Je suis en train de trouver les noms de la première organisation de chaque utilisateur.

Répondre

8

Parce que l'un de vos utilisateurs n'a pas toutes les organisations si organizations.first est nulle

Vous pouvez éviter cela en faisant

User.find(:all).select {|u| 
    u.organizations.first.name unless u.organizations.size == 0} 
Questions connexes