반응형
Rails 상에서 haml에서 if를 사용해서 2개씩 끊어서 .row 값을 부여할 때, 아래 결과와 같이 인덴트 문제가가 발생한다. 자식으로 들어가야하는데, 형제 노드로 들어간다. 해결하기 위해서 else 밑의 부분을 한 번더 인덴트를 넣고 싶지만 그러면 인덴트 에러가 발생한다. 아… haml 이 싫어지는 시점.
- @result.each_with_index do |project, index|
- if index % 2 == 0
.row
%div
test
- else
%div
test
결과 HTML
<div class="row">
<div>
test
</div>
</div>
<div>
test
</div>
해결 방법은 in_groups_of(number, fill_with = nil)
메소드를 사용해서 그룹으로 나누는 것이다. 배열을 지정한 갯수만큼 그룹으로 나눠서 계산을 하게 된다. 그러면 코드도 좀 더 깔끔해지고 자식 노드로 잘 들어간다.
- @result.in_groups_of(2, false) do |project_group|
.row
- project_group.each do |project|
%div
test
결과 HTML
<div class="row">
<div>
test
</div>
<div>
test
</div>
</div>
참조 : HAML indentation problem IF
http://apidock.com/rails/Array/in_groups_of
%w(1 2 3 4 5 6 7 8 9 10).in_groups_of(3) {|group| p group}
["1", "2", "3"]
["4", "5", "6"]
["7", "8", "9"]
["10", nil, nil]
%w(1 2 3 4 5).in_groups_of(2, ' ') {|group| p group}
["1", "2"]
["3", "4"]
["5", " "]
%w(1 2 3 4 5).in_groups_of(2, false) {|group| p group}
["1", "2"]
["3", "4"]
["5"]
반응형
'iDev' 카테고리의 다른 글
xcode 6에서 사라진 prefix.pch 를 찾아라 (0) | 2014.09.26 |
---|---|
OS X, 스타일 빼고 붙여넣기 앱 Trim Style (0) | 2014.09.20 |
[meteor.js] 텍스트를 더블 클릭하면 수정 가능하게 만들기 (0) | 2014.08.12 |
무시하지 말자 ld: warning: directory not found for option (0) | 2014.03.26 |
GameController 프레임 워크 허접 사용법 (0) | 2013.12.23 |