我一直在研究新的应用程序,就像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 任何想法
答案 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
未被声明,所以它没有!