簡體   English   中英

has_many和belongs_to nameError軌道

[英]has_many and belongs_to nameerror rails

這是我的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>

您的命名約定以及促使您編寫的代碼類型僅差一點:

def index
  @categories = Category.all
end

@category應該是@categories ,因為Category.all將返回0、1或許多Category對象(而不是單個對象)的ActiveRecord關系。

然后:

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

首先,您從Category.all遍歷Category.all ,然后對每個Category遍歷其SubCategories。

那里有兩個問題。

  • 它應該是@category ,而不是category
  • 它應該是<li><%= f.name %></li>

您錯過了使用f.name引用實例變量和ERB標記的f.name ,它應該是

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM