无法渲染另一个模块的部分并传递变量

时间:2015-08-21 18:07:33

标签: ruby-on-rails partials

我很抱歉,因为我知道这应该是一个简单的,但我被卡住了。我有一个“类别”的节目视图,其中我试图显示相关的has_many“子类别”。我通过使用以下内容来调用部分:

<%= render partial: 'subcategories/subcategory', locals: {category: @category }%>

我在Subcategories视图文件夹中有一个正确命名的html文件,并加载了部分视图。我知道这是因为partial有代码

<%= @category.name %></p>

显示部分内的正确类别名称。但是,当我尝试通过调用

加载任何子类别数据时
<% @subcategories.each do |subcategory| %>
<%= subcategory.name%>
<% end %>

我收到错误:类别中的NoMethodError#show,undefined方法`each'代表nil:NilClass

我很遗憾地提出这样一个基本问题,但我会在这个项目中广泛使用相关模块的部分内容。

1 个答案:

答案 0 :(得分:0)

替换它:

 <%= render partial: 'subcategories/subcategory', locals: {category: @category }%>

用这个:

<%= render @category.subcategories %>

然后在部分app / views / subcategories / _subcategory.html.erb中执行此操作:

<%= subcategory.name %>