我有一个使用haml作为其模板的rails应用程序。在我的一个haml partial:
- customer.each_with_index do |customer, index|
-# start a new row for every odd defendant
- if index % 2 > 0
.grid-row
-# for each customer output each their details
.column-half
.bold-normal
= t('.customer')
= index + 1
=# other info
-# if the customer in the first column is the last one then add a blank column-half
- if index + 1 == customers.size && index % 2 > 0
.column-half
我希望它能产生一些html,如下所示:
<div class="grid-row">
<div class="column-half">
Customer 1
</div>
<div class="column-half">
Customer 2
</div>
</div>
<div class="grid-row">
<div class="column-half">
Customer 3
</div>
<div class="column-half">
</div>
</div>
理想情况下,我希望尽可能将客户详细信息部分保留为DRY。
非常感谢
答案 0 :(得分:1)
我认为最简单的方法是将它们分成两块,而不用任何条件模数。
- customers.each_slice(2) do |left, right|
.grid-row
.column-half
.bold-normal
= left # or whatever
.column-half
- if right
.bold-normal
= right # or whatever
- else
您还可以将客户详细信息部分(.column-half
)提取为部分。