Rails:循环处理部分,为第一项添加额外的 class
Rails: process partials with loop, add additional class for the first item
我正在尝试实现某种图片库。我决定在内部使用带有图像片段的部分。对于每个图像类别,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 应该有一个额外的 class .col-md-offset-1
(我每页有奇数个图像)。我怀疑这可以在循环内完成。有谁知道如何解决这个问题?
你可以传递一个参数。
- 5.times do |x|
= render partial: 'image', locals: {counter: x}
您的部分将有一个局部变量 counter
,您可以测试它是否是第一个部分(等于 0)。
这是对@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'}
我正在尝试实现某种图片库。我决定在内部使用带有图像片段的部分。对于每个图像类别,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 应该有一个额外的 class .col-md-offset-1
(我每页有奇数个图像)。我怀疑这可以在循环内完成。有谁知道如何解决这个问题?
你可以传递一个参数。
- 5.times do |x|
= render partial: 'image', locals: {counter: x}
您的部分将有一个局部变量 counter
,您可以测试它是否是第一个部分(等于 0)。
这是对@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'}