我正在尝试打印与清单匹配的所有项目。
我在Checklists中显示错误NoMethodError#show,undefined method` each' for #Item:0x007f9e441517d0
不确定是什么导致它,任何帮助将不胜感激。
查看: 应用程序/视图/清单/ show.html.erb
<h1> <%= @checklist.name %> </h1>
<ul class="item">
<% @items.each do |item| %>
<li>
<%= item.item_name %>
<%= item.eta %>
<%= item.complete %>
</li>
<% end %>
</ul>
控制器: 应用程序/控制器/ checklists_controller.rb
def show
@checklist = Checklist.find(params[:id])
@items = Item.find_by(checklist_name: @checklist.name)
end
答案 0 :(得分:0)
问题应该在这一行:
@items = Item.find_by(checklist_id: @checklist.name)
将其更改为:
@items = Item.find_by(checklist_id: @checklist.id)
答案 1 :(得分:0)
鉴于清单和项目没有关联,并且您将把checklist_id的名称更改为清单名称,那么下面的内容应该对您有用。 Find_by只返回找到的第一条记录。哪里会返回所有记录。
def show
@checklist = Checklist.find(params[:id])
@items = Item.where(checklist_name: @checklist.name)
end