2016-10-25 4 views
0

ガイドブックでレールを稼いでいますが、コードが期待通りに実行されません(Rails 4.2.6を使用しますが、古いバージョンについては本が書かれています)。あなたが私を助けることができればと感謝します。レール定義されていないメソッドidがnilの場合:NilClass

私は私のオブジェクトのいずれかのページ(広告)をロードするとき - 私はオブジェクトパラメータで素敵なページを参照してください、私はオブジェクトのリストにページをロードするとき - 私は

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> 

を取得し、私のads_controler.rbは次のようになりますその:

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

    def index 
     @ads = Ad.all 
    end 
end 

のコード行を追加しようとしましたが、助けない:多分

def new 
@ad = Ad.new 
end 

THER私が気付くことのできないものですか?何か間違い?

答えて

1

あなたは@ad.idないad.idとして呼び出す必要があります:

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

または:

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

感謝の男!どのような愚かな間違いとどのように注意深いです! – crcerror

+0

@crcerror答えを受け入れてください。ありがとう! – araratan

関連する問題