gpt4 book ai didi

haml - 有条件地关闭 HAML 中的标签

转载 作者:行者123 更新时间:2023-12-04 22:49:53 29 4
gpt4 key购买 nike

我正在遍历一组项目并将它们显示在嵌套在 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 助手)

最佳答案

答案是使用更多更好的 Ruby :)

- @items.group_by(&:date).each do |date,items|
.container
%h2= date
- items.each do |item|
= yield_content :display_item item

有关更多详细信息,请参阅 Enumerable#group_by 文档。

你可以 close and re-open the containers and headers as you were thinking ,但这是一个可怕的,难以维护的黑客,我建议反对。拥抱 Ruby 和 Haml 的优雅;不要把 Haml 写成 ERB。

关于haml - 有条件地关闭 HAML 中的标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9253269/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com