Я использую блог посреднического, чтобы вывести сводку всех сообщений в блоге на странице так:Расщепления с in_groups_of
<ul>
<% page_articles.each_with_index do |article, i| %>
<% unless article.data['tags'].include?('featured') %>
<li class="Project">
<h3><%= link_to article.title, article.url %></h3>
</li>
<% end %>
<% end %>
</ul>
Это хорошо работает, но мне нужно, чтобы сломать после 3 записей, как так:
<ul>
<li class="Project"><li>
<li class="Project"><li>
<li class="Project"><li>
</ul>
<div class="break"></div>
<ul>
<li class="Project"><li>
<li class="Project"><li>
<li class="Project"><li>
</ul>
Из исследований, кажется, что Руби in_groups_of
кажется, что путь здесь, но не может получить синтаксис работает должным образом. Вот что у меня есть:
<ul>
<% page_articles.in_groups_of(3, false).each_with_index do |article, i| %>
<% unless article.data['tags'].include?('featured') %>
<li class="Project">
<h3><%= link_to article.title, article.url %></h3>
</li>
<% end %>
<% end %>
</ul>
Он возвращается в undefined method 'in_groups_of'
. Кроме того, похоже, что если логика не будет применяться до того, как она будет разбита на группы по три. Любые мысли о способах улучшить это?
['Enumerable # each_slice'] (http://ruby-doc.org/core-2.3.0/Enumerable.html#method-i-each_slice) сделает это за вас, так как вы используете' false' as аргумент 'fill_with'. например 'page-articles.each_slice (3) .with_index do | article, i |' – engineersmnky