2016-09-15 18 views
1

私はそれがIMDBのようなものだ新しいアプリに取り組んできたと私はそれが関連して正常に動作しますが、私は、カテゴリコントローラでカテゴリ別に動画を表示するには、問題を抱えているカテゴリーのモデルを追加しました:カテゴリに未定義のメソッド `each 'for nil:NilClass..why?

def show 
    @category = Category.find(params[:id]) 
    @category_movies = @category.movies 
end 

をショーのページ:

<h align = "center"><%= "Category: " + @category.name %></h1> 
<%= render 'movies/movies', obj:@category_movies %> 

とインデックスに私がやった:

<div class= "row"> 
    <% @movies.each do |movie|%> 
     <div class="col-sm-6 col-md-3"> 
     <div class="thumbnail"> 
      <%= link_to (image_tag movie.image.url(:medium), class: 'image'), movie %> 
     </div> 
     </div> 
    <% end %> 
</div> 

ので、私がnilのエラー未定義のメソッド `各」得た:NilClass 任意のアイデア

+0

インデックスメソッドはどこにありますか? 'each'はあなたの投稿に基づいて' index'ページにしか見つかりませんでした。 – araratan

+0

インデックスアクションのコードを貼り付けます –

答えて

4

部分的には@moviesを使用しますが、コントローラーでは@category_moviesと呼んでいます。同じ変数名を使用するか、ローカル変数を使用する必要があります。

<%= render 'movies/movies', :movies => @category_movies %> 

# and in the partial 
<% movies.each do |movie|%> 

注:ローカル変数と

例えばバグやタイプミスのためにテストされていません...

0

インスタンス変数@category_moviesはコントローラーとビューに同じでなければなりません:) @moviesされます宣言されていないので無しです!

関連する問題