我认为我是个错误:
undefined method `each' for nil:NilClass
<tbody>
<% @invoices.each do |invoice| %>
<tr>
<td><%= invoice.invoiceDate%></td>
<td><%= invoice.invoiceNumber %></td>
这是我的发票控制器索引:
def index
@invoices = Invoice.all
end
我发现的有关此错误的大多数帖子都是因为@invoices
未正确声明,与我的不同。任何人有任何想法还有什么可能是错的?
谢谢!
答案 0 :(得分:5)
由于您在展示视图中使用@invoices
,因此您需要在@invoices
方法中实际设置show
,而不是index
方法。因此,将以下代码添加到控制器中,您应该全部设置。
def show
@invoices = Invoice.all
end
答案 1 :(得分:4)
属于该任务订单
你最好这样做:
#config/routes.rb
resources :task_orders
#app/controllers/task_orders_controller.rb
Class TaskOrdersController < ApplicationController
def show
@task_order = TaskOrder.find params[:id]
@invoices = @task_order.invoices
end
end
#app/views/task_orders/show.html.erb
<% for invoice in @invoices do %>
<%= invoice.something %>
<% end %>