HAML嵌套的IF条件在Rails视图中无法正常工作

时间:2013-10-01 20:50:28

标签: ruby-on-rails-3 haml

使用下面的代码,如果有@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>):

2 个答案:

答案 0 :(得分:1)

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

确保@dataload_manuals实际上包含多个记录并对每个记录做出响应。

答案 1 :(得分:0)

@dataload_manuals似乎是DataloadManual的一个实例,而不是可枚举的,因此没有任何内容可以迭代。