2016-08-09 10 views
2

Ich habe Rails Server verwendet, um einige HTML/CSS Änderungen in einer Website-Code auf gh für mich freigegeben, aber ich kann nicht auf einige Seiten zugreifen, weil ich diesen Fehler:NoMethodError in localhost: 3000

NoMethodError auf/media nicht definierte Methode `jeder‘ für nil: NilClas

Es ist eine Seite von einer Funktion im Benutzerprofil; Ich habe einen falschen Benutzer im Terminal erstellt, damit ich auf die Profilseite zugreifen kann, aber die, die ich im Profil haben möchte, gibt diesen Fehler.

Dies ist der Teil des Codes swowing:

<div class="select_wrapper"> 

     <select name="trienal_id" id="" required> 

     <option value="" disabled>Trienal</option> 

     **<% Subject.where(discipline_type: 0)[1..3].each do |s| %>** 

      <option value="<%= s.id %>" <%= "selected" if @tri_id==s.id %>><%= s.name %></option> 

      <% end %> 

     </select> 

</div> 

+0

Sie erwähnten Sie einen gefälschten Benutzer gemacht. Müssen Sie auch falsche Themen machen? – Okomikeruko

Antwort

4

Versuchen Sie dies in irb ($ irb)

> x = [] 
> x[0] 
=> nil 
> x[1] 
=> nil 

So höchstwahrscheinlich Ihre Anfrage Subject.where(discipline_type: 0)blank array [] zurückkehrt, die durch [1..3] Ergebnis gefolgt wird nil von each an, der in undefined method each for nil:NilClas

führen sollten Sie Verwenden Sie die Funktion limit (die ein Limit für die Anzahl der abzurufenden Datensätze angibt) z.B.

Subject.where(discipline_type: 0).limit(3) 

So sollte Ihr Code aussehen

<% Subject.where(discipline_type: 0).limit(3).each do |s| %> 
    <option value="<%= s.id %>" <%= "selected" if @tri_id==s.id %>><%= s.name %></option> 
<% end %> 
+0

Sie haben Recht, es hat funktioniert! Vielen Dank. –

0

Die Subject.where wahrscheinlich weniger zurückkehr Datensätze als das, was Ihr Entfernungs-Index angegeben hat. Nicht sicher, warum Sie die [1..3] dort haben. Verwenden Sie jeweils ein Element in Ihrem Subject.where, und fügen Sie es zur Where-Klausel hinzu, wenn Sie es mehr anhand von Kriterien einschränken müssen.

<% Subject.where(discipline_type: 0).each do |s| %> 
    <!-- your code here --> 
<% end %> 
Verwandte Themen