undefined方法“each”rails 4.0

时间:2014-05-24 23:44:21

标签: ruby-on-rails each erb

我认为我是个错误:

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未正确声明,与我的不同。任何人有任何想法还有什么可能是错的?

谢谢!

2 个答案:

答案 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 %>