“.each do | x |”的循环控制器在再培训局

时间:2012-11-09 11:39:14

标签: ruby loops erb

我试图通过应用.active类通过object.each do |x|命令设置第一个元素输出的样式。我无法理解 - 我怎么会这样做?

3 个答案:

答案 0 :(得分:4)

使用each_with_index()。为清楚起见,下面在非ERB示例中显示。

['hello', 'world'].each_with_index do |item, index|
  if index == 0
    puts "This is the first item"
  end

  puts item
end

打印出来:

This is the first item
hello
world

答案 1 :(得分:1)

看起来非常明显:

objects.first.css_options += ' .active'

然后以通常的方式遍历所有对象。

如果变化可能不同,例如,您还需要将css选项应用于最后一个元素:

objects.zip(['active','','',...]).each do |obj,klass|
  obj.css_option += klass
  ...
end

答案 2 :(得分:0)

[obj1, obj2].each_with_index do |item, index|
  item.css_option += ' .active' if index == 0
end