2009-07-22 6 views
0

J'ai une relation 1: 1 has_one/belongs_to entre les utilisateurs et les enregistrements. Un utilisateur a une inscription.Objets associés non accessibles dans les vues dans Rails?

Lorsque je tente de itérer les utilisateurs dans une vue et afficher leurs informations d'inscription (source à suivre), je reçois l'erreur suivante:

ActionView::TemplateError: You have a nil object when you didn't expect it! The error occurred while evaluating nil.registration_code

Voici le code de la vue incriminée:

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

Dans mon users_controller.rb:

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

Répondre

3

La question est probablement ici que vous êtes fi nding un utilisateur particulier sans un enregistrement associé - ie ce n'est pas cet utilisateur == nil, mais cet user.registration == nil donc il se plaint lorsque vous essayez d'appeler registration_code() sur l'objet d'enregistrement associé inexistant

Essayez

<% @users.each do |user| %> 
    <%= user.registration.registration_code if user.registration %> 
<% end %> 
+0

Cela le règle. – Swanand

Questions connexes