0

これは私のindex_controller

  def index
    @category = Category.all
  end

私のカテゴリモデルには

has_many :sub_categories

私のsub_categoryモデルには含まれています

belongs_to :category

そして、これが私の見解です

<% category.sub_categories.each do |f| %>
    <li>f.name</li>
<% end %>

Rails 4を使用していますが、エラーが発生しています

undefined local variable or method `category' for #<#<Class:0xab758cc>:0xb56c46d8>
4

3 に答える 3

3

命名規則と、どのような種類のコードを書くように促すかについて、あなたは少しずれています:

def index
  @categories = Category.all
end

@categoryは、1 つのオブジェクトではなく、0、1、または多数の Category オブジェクトの ActiveRecord Relation を返す@categoriesため、 である必要があります。Category.all

それで:

<% @categories.each do |category| %>
  <% category.sub_categories.each do |sub_category| %>
    <li><%= sub_category.name %></li>
  <% end %>
<% end >

最初に のカテゴリを反復しCategory.all、次に各カテゴリについて、そのサブカテゴリを反復します。

于 2013-09-10T17:52:55.697 に答える
1

そこには2つの問題があります。

  • では@categoryなく、category
  • そのはず<li><%= f.name %></li>
于 2013-09-10T17:52:59.260 に答える
0

使用するインスタンス変数とERBタグへの参照がf.nameありません。

<% @category.sub_categories.each do |f| %>
  <li><%= f.name %></li>
<% end %>
于 2013-09-10T17:48:41.887 に答える