0

使用下面的代码,如果有 @dataload_manuals 结果,我试图只执行 @dataload_manuals.each 。

当它在没有 @dataload_manuals 的帐户中运行时,没有错误。但是,对于使用 @dataload_manuals 的帐户,我收到以下错误。

此外,如果我删除 if @dataload_manuals 行,带有 @dataload_manuals 的帐户会正确显示。

实现此目的的正确方法是什么?提前感谢您的任何建议。

在我看来,HAML:

%table
  %tr
    %th Connector
    %th User
    %th Last run
    - if @dataload_manuals
      - @dataload_manuals.each do |d|
        %tr
          %td Manual
          %td= d.user ? d.user.email : ''
          %td= d.updated_at

我得到的错误信息:

ActionView::Template::Error (undefined method `each' for #<DataloadManual:0x00000003a31468>):
4

2 回答 2

1

从您的错误看来,@dataload_manuals 不是数组或活动记录关系,而是 DataloadManual 的单个实例。所以你的“如果”将是真的,但它不会回应“每个”。

确保 @dataload_manuals 实际上包含多条记录并响应每条记录。

于 2013-10-01T20:57:28.660 回答
0

@dataload_manuals似乎是一个实例,DataloadManual而不是一个可枚举的,所以没有什么可以迭代的。

于 2013-10-01T20:58:07.560 回答