2009-11-10 3 views
0

Je ne sais même pas comment cela s'est cassé. Et je ne sais pas vraiment ce que l'erreur signifie non plus. Cela fonctionnait précédemment.ruby ​​sur les rails erreur nil.to_sym

You have a nil object when you didn't expect it! 
The error occurred while evaluating nil.to_sym 
    Extracted source (around line #3): 

    1: <div id="probes"> 
    2: <h1>Edit Probes</h1> 
    3: <% form_for @probe do |f| %> 
    4:  <%= f.error_messages %> 
    5: <p> 
    6:  <%= f.label "Site name" %><br /> 

Le contrôleur:

def edit 
    @probe = Probe.find(params[:id]) 
end 

Cela se produit également sur l'action index

You have a nil object when you didn't expect it! 
The error occurred while evaluating nil.to_sym 

10: <% for probe in @probes %> 
11:  <tr> 
12:  <td class="detail" style="padding-left: 100px;" width="50%"> 
13:   <%=h link_to probe.name, probe %> 
14:  </td> 
15:  <td class="detail" style="padding-left: 30px;" width="30%"> 
16:   <%=h @status[x] %> 

Le contrôleur:

@probes = @current_user.probes.find_existing_probes_for_user 
@status_dump = [] 
for probe in @probes 
    @status_dump << probe.status 
end 
@status = [] 
for id in @status_dump 
    case id 
     when 0 then @status << .... 
     when 1 then @status << .... 
     when 2 then @status << .... 
     when 3 then @status << .... 
    end 
end 

La découverte revient avec les données, J'utilise le débogueur ruby.

EDIT

Pour l'action index, il doit faire avec la sonde dans le lien.

EDIT 2 J'ai modifié la sonde à edit_probe_path (probe.id) et cela fonctionne. Je ne sais toujours pas pourquoi la page d'édition ne fonctionne toujours pas.

Répondre

0

Cela avait à voir avec la configuration de mes liens. Après avoir joué avec eux, il semble avoir réglé le problème.

1

Cela signifie que votre recherche a échoué et que vous devez gérer davantage les erreurs.

+0

L'ID existe dans ma base de données. – Ryan

+0

Et @probe reçoit les informations qui reviennent de la base de données. – Ryan