2013-04-29 2 views
1

Возможно ли преобразовать код ERB ниже в HAML?Можно ли преобразовать этот ERB в HAML?

ERB

<div class="users">     
 <div class="row"> 
   <% i = 0 %> 
   <% @users.each do |user| %> 
     <span><%= @user.name %></span> 
     <% if i % 4 == 0 %> 
       </div> <!-- Close div .row --> 
       <div class="row"> <!-- Open new div .row --> 
     <% end %> 
     <% i += 1 %> 
   <% end %> 
 </div> <!-- Close div .row --> 
</div> <!-- Close div .users --> 

РЕЗУЛЬТАТ (HTML)

<div class="users">     
 <div class="row"> 
   <span>User Name 1</span> 
   <span>User Name 2</span> 
   <span>User Name 3</span> 
   <span>User Name 4</span> 
 </div> <!-- Close div .row --> 
 <div class="row"> <!-- Open new div .row --> 
   <span>User Name 5</span> 
   <span>User Name 6</span> 
   <span>User Name 7</span> 
   <span>User Name 8</span> 
 </div> <!-- Close div .row --> 
 <div class="row"> <!-- Open new div .row --> 
   <span>User Name 9</span> 
   <span>User Name 10</span> 
   <span>User Name 11</span> 
   <span>User Name 12</span> 
 </div> <!-- Close div .row --> 
</div> <!-- Close div .users --> 
+0

возможно дубликат [Как я могу условно обернуть некоторый контент Haml в теге] (http://stackoverflow.com/questions/7237308/how -can-i-условно-wrap-some-haml-content-in-a-tag) – matt

+0

@matt, я отредактировал код, см. сейчас, пожалуйста. :) –

+0

Ну, вопрос _original_ был дубликатом, его больше нет. – matt

ответ

2

Вам необходимо структурировать д ата, как вы должны использовать его, используя что-то вроде each_slice:

.users 
    - @users.each_slice(4) do |group| 
    .row 
     - group.each do |user| 
     %span= user.name 
+1

:(Я как раз собирался опубликовать это сообщение. Вы были быстры. :) – kiddorails

2

Я думаю, что вы хотите вместо этого: EDIT:

.users 
    [email protected]_slice(4) do |slice| 
    .row 
     -slice.each do |user| 
     %span= user.name 
+0

Ты прав, я спросил не так. Посмотрите отредактированный код, пожалуйста. –

+0

Изменение в соответствии с точными требованиями. Пожалуйста, подождите. :) – kiddorails

Смежные вопросы