2016-10-25 6 views
0

Ich verdiene Rails mit dem Reiseführer, aber etwas Code läuft nicht wie erwartet (verwenden Sie Rails 4.2.6, aber Buch wurde über ältere Version geschrieben). Schätze, wenn du mir helfen kannst.Rails undefinierte Methode `ID 'für Nil: NilClass

Wenn ich Seiten von irgendwelchen meiner Objekte laden (Ads) - ich sehe schöne Seite mit Objektparametern, aber wenn ich die Seite mit Liste der Objekte laden - ich

NoMethodError in Ads#index 
Showing /home/mei33/mebay/app/views/ads/index.html.erb where line #11 raised: 
undefined method `id' for nil:NilClass 

<ul> 
    <% for ad in @ads %> 
     <li><a href="/ads/<%= @ad.id %>"><%= @ad.name %></a></li> 
    <% end %> 
</ul> 

meine ads_controler.rb sieht aus wie dass:

class AdsController < ApplicationController 
    def show 
     @ad = Ad.find(params[:id]) 
    end 

    def index 
     @ads = Ad.all 
    end 
end 

versucht, diese Codezeile hinzuzufügen, aber nicht geholfen:

def new 
@ad = Ad.new 
end 

vielleicht ther Das ist etwas, was ich nicht bemerken kann? einige Fehler?

Antwort

1

sollten Sie rufen als ad.id nicht @ad.id:

<ul> 
    <% for ad in @ads %> 
     <li><a href="/ads/<%= ad.id %>"><%= ad.name %></a></li> 
    <% end %> 
</ul> 

Oder:

<ul> 
    <% @ads.each do |ad| %> 
     <li><a href="/ads/<%= ad.id %>"><%= ad.name %></a></li> 
    <% end %> 
</ul> 
+0

Dank des Mannes! Was für ein blöder Fehler und wie aufmerksam bist du! – crcerror

+0

@crcerror Bitte akzeptieren Sie die Antwort. Vielen Dank! – araratan

Verwandte Themen