1

这基本上是我想要做的事情,但我想知道是否有办法在不运行循环两次的情况下做到这一点?

%table
  %thead
    %tr
      - @widgets.each do |widget|
        %th
          = widget.name
  %tbody
    %tr
      - @widgets.each do |widget|
        %td
          = widget.info
4

1 回答 1

1

不。您的表示结构和数据结构之间存在(非常好的)不匹配。您的数据结构是具有两个属性的对象的集合,但您的表示结构包含第一个属性的集合和第二个属性的集合。

不用担心。ActiveRecord 缓存对象,因此widget在第二次迭代中不会再次查询数据库。

于 2013-06-29T17:43:02.507 回答