【发布时间】:2010-04-21 10:21:50
【问题描述】:
我正在尝试使用 Rails 和 Haml 呈现日历。
使用的日期来自一个名为@dates 的变量。这是一个Date 范围,包含要在日历上显示的第一天和最后一天。第一天总是星期日,最后一天总是星期一。
我打算使用 HTML 表格呈现一个典型的日历,每个工作日有一个列(星期日将是一周的第一天)。
所以,我需要在周日输入 %tr,然后是 %td,但其余时间我只需要 %td。
我在用 Haml 建模时遇到了问题。这似乎需要不同级别的缩进,这是它不喜欢的。这是我失败的尝试:
%table
%tr
%th= t('date.day_names')[0] # Sunday
%th= t('date.day_names')[1]
%th= t('date.day_names')[2]
%th= t('date.day_names')[3]
%th= t('date.day_names')[4]
%th= t('date.day_names')[5]
%th= t('date.day_names')[6] # Monday
-@dates.each do |date|
- if(date.wday == 0) # if date is sunday
%tr
%td=date.to_s
- else
%td=date.to_s
这不是我想要的方式。非星期天的%tds 出现在%tr 之外:
<tr>
<td>2010-04-24</td>
</tr>
<td>2010-04-25</td>
<td>2010-04-26</td>
<td>2010-04-27</td>
<td>2010-04-28</td>
<td>2010-04-29</td>
<td>2010-04-30</td>
<tr>
<td>2010-05-01</td>
</tr>
<td>2010-05-02</td>
<td>2010-05-03</td>
...
我尝试在 else 中再添加两个空格,但后来 Haml 抱怨缩进不当。
最好的方法是什么?
注意:我对使用无序列表呈现日历不感兴趣。请考虑使用表格作为问题的约束之一。
【问题讨论】:
标签: ruby-on-rails indentation haml