[英]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.