Я пытаюсь сделать календарь с помощью Rails и Haml .
Используемые даты взяты из переменной с именем @dates
. Это диапазон Date
, который содержит первый и последний дни, которые будут представлены в календаре. Первый день - всегда воскресенье, а последний - всегда понедельник.
Я планирую сделать типичный календарь с одним столбцом в день недели (воскресенье будет первым днем недели) с использованием таблицы HTML.
Итак, мне нужно поставить %tr
с последующим %td
по воскресеньям, но в остальное время мне просто нужен %td
.
У меня проблемы с моделированием в Хамле. Кажется, для этого требуются разные уровни отступов, и это не нравится. Вот моя неудачная попытка:
%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
Это не работает так, как я хочу. %td
s для не воскресных дней появляются за пределами %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
, но потом Хэмл пожаловался на неправильный отступ.
Какой лучший способ сделать это?
Примечание. Меня не интересует рендеринг календаря с использованием неупорядоченных списков. Пожалуйста, рассмотрите возможность использования таблицы в качестве одного из ограничений проблемы.