如何传递Rails的cycle()一组值来循环?

时间:2010-09-28 05:08:38

标签: ruby-on-rails

我希望cycle方法能够获取我在运行中编译的值数组,但它似乎不是像我希望的那样解释它。

(在这个例子中,它是一个静态数组,但我希望它能够工作,以便我可以使用可变构造的数组)

- some_array = ['one', 'two', 'three']
- colors.each do |color|
  %a{ :name => color, :class => "#{cycle(some_array)}" }

将其作为每个元素的类应用:

"three"] "two", ["one",

...看起来好像是在数组上调用to_s或其他东西。

我该怎么做呢?

1 个答案:

答案 0 :(得分:5)

cycle需要多个参数并循环遍历它们。你传递了一个单个参数,一个数组。

您可以使用splat运算符将数组更改为以下多参数:

cycle(*some_array)

这就像你做的那样:

cycle("one", "two", "three")

而不是:

cycle(["one", "two", "three"])