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

doc*_*nge 2 ruby-on-rails

我想循环方法来获取我在运行中编译的值数组,但它似乎正在解释它而不是我所希望的.

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

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

这适用于每个元素的类:

"three"] "two", ["one",
Run Code Online (Sandbox Code Playgroud)

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

我该怎么做呢?

Rya*_*igg 5

cycle采用多个参数并循环遍历它们.你传递的是一个参数,一个数组.

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

cycle(*some_array)
Run Code Online (Sandbox Code Playgroud)

这将表现得好像你做了:

cycle("one", "two", "three")
Run Code Online (Sandbox Code Playgroud)

而不是:

cycle(["one", "two", "three"])
Run Code Online (Sandbox Code Playgroud)