2016-09-15 74 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> 

,所以我得到了零的错误未定义的方法`每个”: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是没有宣布,所以它是零!

相关问题