如何在Ruby on Rails中为循环中的每个其他元素添加左和右类?

我在Ruby on Rails应用程序中工作。 我有一个循环创建像这样的div:

 

我需要输出让所有其他div左右浮动,如下所示:

 
Allstar Seaworthy
Casey Kelp
Dimmy Finster
Daffney Gillfin
Tooter Shellby
Dr. / Uncle Galeo

另外,我需要每隔两个div添加一个class="clear" div,如下所示:

 
Allstar Seaworthy
Casey Kelp
Dimmy Finster
Daffney Gillfin
Tooter Shellby
Dr. / Uncle Galeo

我已经研究过,并发现一些 post说可以通过使用cycle()轻松完成备用类,这确实有效。 但是,当我在循环中的两个地方使用它时,它会停止正常工作,只输出如下内容:

 
Allstar Seaworthy
Casey Kelp
Dimmy Finster
Daffney Gillfin
Tooter Shellby
Dr. / Uncle Galeo

Ruby on Rails在循环中交替类的最佳实践方法是什么,并且还在每个其他循环中添加一些东西?

根据文档 ,如果你需要嵌套的,你可以命名它们。 否则他们将共享名称“默认”并发生冲突。

 <% @snorks.each do |snork| -%> 
<%= snork %>
<%= cycle('','
', :name=>"cleardiv") %> <% end %>

这里最好的事情似乎是使用每个索引。 这样你可以做一些简单的模数学来确定数字是奇数还是偶数并输出正确的类并添加清除。

 @snorks.each_with_index do | snork, index| If index%2 == 0 class = 'left' else class = 'right' end 

好吧,我得到我的漂移,我在我的手机上。

使用循环助手

http://apidock.com/rails/ActionView/Helpers/TextHelper/cycle

 <% @snorks.each do |snork| -%> 
"> <%= snork %>
<% end %>

编辑:添加新div; 以下可以提供帮助

 <% @snorks.each_slice(2) do |snork_batch| -%> <% snork_batch.each do |snork|%> 
"className") -%>"> <%= snork %>
<%end%>
<% reset_cycle("className")%> <% end %>