使用下面的代码,如果有@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>):
答案 0 :(得分:1)
从您的错误看,@ dataload_manuals不是数组或活动记录关系,而是DataloadManual的单个实例。所以你的'if'将是真的,但它不会回应'each'。
确保@dataload_manuals实际上包含多个记录并对每个记录做出响应。
答案 1 :(得分:0)
@dataload_manuals
似乎是DataloadManual
的一个实例,而不是可枚举的,因此没有任何内容可以迭代。