레일과 Haml으로 캘린더를 렌더링하려고합니다.다른 들여 쓰기가있는 Haml-if-else
사용 된 날짜는 @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
[email protected] 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
에 두 가지 이상의 공백을 추가하는 시도하지만 HAML 부적절한 들여 쓰기에 대해 불평했다.
이 작업을 수행하는 가장 좋은 방법은 무엇입니까?
참고 : 정렬되지 않은 목록을 사용하여 캘린더를 렌더링하는 데 관심이 없습니다. 문제의 제약 조건 중 하나로서 표를 사용하는 것을 고려하십시오.
나는 첫 번째 행 (첫 번째 주)에서만 작동한다고 생각합니다. @dates에는 몇 주가 포함되어 있습니다. 나는 1 주일에 1 % tr을 넣고 싶다. – kikito
정상적인 방법으로 haml에서 실행할 수 없습니다. 두 가지 옵션이 있습니다. 먼저 배열을 배열로 자르고 내 답변에 표시된대로 각각을 반복합니다 (필자가 선호하는 솔루션). 둘째, 실제로 수동으로 태그를 인쇄하십시오 : = "
in_groups_of를 사용하여 답변을 추가하는 방법을 찾았습니다. 도움을 주셔서 감사합니다.이 들여 쓰기 도구로 인해 정말로 차단되었습니다. – kikito
관련 문제