我有一种情况,我只想在计数大于0时才将类添加到div标签
示例:
- @color.shades.each_with_index do |shade, index|
- if index == 0
#shades
- else
#shades.horizontalLine.second
%h3 something
%dl
%dt some
%dd some1
在此示例中,我希望从%h3
开始的所有内容都位于#shades
或#shades.horizontalLine.second
之下,具体取决于if和else语句的评估。
解决方法是:
- @color.shades.each_with_index do |shade, index|
- if index == 0
#shades
%h3 something
%dl
%dt some
%dd some1
- else
#shades.horizontalLine.second
%h3 something
%dl
%dt some
%dd some1
但在这里我必须重复代码
我对如何在rails中执行此操作感到困惑,而没有从%h3
开始为两个div重复代码。
答案 0 :(得分:8)
您可以将类设置为一个变量,该变量包含基于索引的类名来干掉它:
- @color.shades.each_with_index do |shade, index|
- shade_classes = index == 0 ? '' : 'horizontalLine second'
#shades{ :class => shade_classes }
%h3 something
%dl
%dt some
%dd some1