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

Cod*_*kie 2 ruby loops ruby-on-rails

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

<% @snorks.each do |snork| -%>
  <div>
    <%= snork %>
  </div>
<% end %>
Run Code Online (Sandbox Code Playgroud)

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

<div class="left">
  Allstar Seaworthy
</div>
<div class="right">
  Casey Kelp
</div>
<div class="left">
  Dimmy Finster
</div>
<div class="right">
  Daffney Gillfin
</div>
<div class="left">
  Tooter Shellby
</div>
<div class="right">
  Dr. / Uncle Galeo
</div>
Run Code Online (Sandbox Code Playgroud)

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

<div class="left">
  Allstar Seaworthy
</div>
<div class="right">
  Casey Kelp
</div>
<div class="clear"></div>
<div class="left">
  Dimmy Finster
</div>
<div class="right">
  Daffney Gillfin
</div>
<div class="clear"></div>
<div class="left">
  Tooter Shellby
</div>
<div class="right">
  Dr. / Uncle Galeo
</div>
<div class="clear"></div>
Run Code Online (Sandbox Code Playgroud)

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

<div class="left">
  Allstar Seaworthy
</div>
<div class="left">
  Casey Kelp
</div>
<div class="left">
  Dimmy Finster
</div>
<div class="left">
  Daffney Gillfin
</div>
<div class="left">
  Tooter Shellby
</div>
<div class="left">
  Dr. / Uncle Galeo
</div>
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*mas 8

根据文档,如果你需要嵌套的,你可以命名它们.否则他们将共享名称"默认"和冲突.

<% @snorks.each do |snork| -%>
  <div class="<%= cycle('left', 'right') -%>">
    <%= snork %>
  </div>
  <%= cycle('','<div  class="clear"></div>', :name=>"cleardiv") %>
<% end %>
Run Code Online (Sandbox Code Playgroud)