未定义的方法`每个'为nil:NilClass..why?

时间:2016-09-15 06:28:11

标签: ruby-on-rails show categories movie

我一直在研究新的应用程序,就像IMDB一样,我添加了类别模型,它与协会工作正常,但我在类别控制器中按类别显示电影有问题:

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 任何想法

2 个答案:

答案 0 :(得分:4)

在你的部分中,你使用@category_movies但是在控制器中,你正在调用它<%= render 'movies/movies', :movies => @category_movies %> # and in the partial <% movies.each do |movie|%> - 你需要使用相同的变量名,或者使用局部变量。

例如使用局部变量:

session_start()

注意:没有测试错误和拼写错误......

答案 1 :(得分:0)

实例变量@category_movies在控制器和视图中必须相同:) @movies未被声明,所以它没有!