Rails:使用循环处理部分,为第一个项添加其他类

时间:2016-03-11 11:49:43

标签: ruby-on-rails ruby twitter-bootstrap haml

我正在尝试实现某种形象库。我决定在里面使用带有图像片段的部分片段。对于每个图像类别,partail每页添加5次。实际上这很简单:

# main page
.container
  .row
    .col-lg-12
      %h1.page-header Image Gallery
    - 5.times do
      = render partial: 'image'

# partial
.col-xs-6.col-md-2
  = link_to image_tag('http://placehold.it/128x128', class: 'img-responsive'), '#', class: 'thumbnail'

但问题是连续的第一个div应该有一个额外的类.col-md-offset-1(每页有一个奇数的图像)。我怀疑这可以在循环内完成。有谁知道这是如何工作的?

2 个答案:

答案 0 :(得分:1)

您可以传递参数。

- 5.times do |x|
  = render partial: 'image', locals: {counter: x} 

你的部分将有一个局部变量counter,你可以测试它是否是第一个部分(等于0)。

答案 1 :(得分:1)

这是@SteveTurczyn答案的延伸!

# main page
.container
  .row
    .col-lg-12
      %h1.page-header Image Gallery
    - 5.times do |index|
      = render partial: 'image', locals: {index: index}

# partial
- css_class = (index == 0) ? 'col-xs-6 col-md-2 col-md-offset-1' : 'col-xs-6 col-md-2'
%div{class: css_class}
  = link_to image_tag('http://placehold.it/128x128', class: 'img-responsive'), '#', class: 'thumbnail'}