我有一个有两个列级别的表和插槽。每个级别可以有很多插槽,但是我已经制作了一个用于模拟这种情况的表。例子
level | slot
1 | 1
1 | 2
1 | 2
2 | 1
2 | 2
2 | 2
在我的erb模板中,我想创建一个表格,通过制作类似网格的东西来模拟这种情况。
到目前为止的问题是,我想要两个循环来处理这种情况。对于每个级别,我获得插槽的数量并显示它们。提供的each
循环没有帮助。我正在考虑创建一个跟踪级别变量的变量,当它发生变化时,我会调用内部循环。但是这对我没有效率。
我也在考虑创建一个json对象,并将slot apeats作为一个数组放在level变量中,但我不知道从哪里开始这个。
或者有没有办法在erb模板中编写while循环?
答案 0 :(得分:4)
你可以用ruby(erb)这样写一个循环:
<% loop do %>
...
<% break if <condition> %>
<% end %>
答案 1 :(得分:3)
ERB只是红宝石
<% @collection.each do |value| %>
<%= value %>
<% end %>
答案 2 :(得分:2)
它仍然可以是一张桌子。我会在您的操作中创建一个名为@slots
的变量,并在您的erb视图中调用.each
,如下所示:
<% @slots.each do |slot| %>
<% if ... %>
<div class="left-column">
<%= slot.level %>
</div>
<div class="right-column">
<%= slot.id %> <!-- or whatever var you you want -->
</div>
<% else %>
...
<% end %>
<% end %>
这样每个新的slot
都会自动添加到收藏中,您不必担心level