如何在Ruby中更简洁地表达这段代码

时间:2013-03-11 11:49:05

标签: ruby-on-rails ruby loops

在每个循环中,我想输出一个HTML元素,如果它是循环的开头,或者索引是五的倍数。

- images.each do |image, index|
  - if index == 1 || index == 5 || index == 10 || index == 15 # this is not scalable!
    .row-fluid
  .span2
    div.image-wrapper
      = image_tag image.url

有没有更好的方法在Ruby中表达这个?

我想在span2 div中输出最多5个row-fluid div。

1 个答案:

答案 0 :(得分:10)

modulo operator

if index % 5 == 0
  

基本上,我想确保在行 - 流体div中最多只输出5个span2 div。

嗯,这完全是另一个故事

- images.each_slice(5) do |slice|
  .row-fluid
  - slice.each do |image|
    .span2
      div.image-wrapper
        = image_tag image.url

Enumerable#each_slice上的文档。