【发布时间】:2012-03-04 10:14:40
【问题描述】:
我正在遍历一组项目并将它们显示在嵌套在 div 中的列表中。目标是每天都有一个 div,并在每个 div 中显示当天的项目。
如何在 HAML 中执行此操作?我认为我不能(或不应该)有条件地关闭并像在 erb 中那样创建一个新标签。
我试过了:
- @items.each do |item|
- if item date is diff from previous make a new container
.container
%h2 #{item.date}
= yield_content :display_item item
- else
= yield_content :display_item item
但这会产生以下结果:
<div class="container">
<h2>01/28/2012</h2>
<ul>
<li>
... item
</li>
</ul>
</div>
<li>
...item
</li>
但我希望其他项目在同一个 div 中。 我正在使用 ruby、sinatra(包括 content_for 助手)
【问题讨论】:
-
我认为这在haml中是不可能的。你可能想改变你的数据结构。
-
我正在服务器端收集数据,它已经按日期排序。我必须通过以下结构来传递视图似乎很愚蠢:[date => [items]]。如果我无法得到一个可以作为我后备方案的解决方案
标签: haml