2013-06-29 26 views
1

这基本上是我正在尝试做的,但我想知道是否有办法做到这一点,出两次运行循环?在Rails中是否有更好的方法来遍历这个结构

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

这是一个相当常见的模式。即使您预先收集了@widget信息,您只需将问题移至另一个数据结构,然后再次执行两次迭代。收藏品相对较小,所以不是时间上的负担。我想,如果你聪明,你可以写一个“注射”,它可以累积你的头部排和你的身体排,但它会比你有更多的复杂。我也经常遇到这些情况,希望HTML有一种按列而不是按行定义表的方法。 ;) – lurker

+0

我猜不。有一个可能重复的问题。 http://stackoverflow.com/questions/6974462 – Muntasim

回答

1

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

别担心。 ActiveRecord缓存对象,所以widget在第二次迭代中不再查询数据库。

相关问题