Как мне передать Rails 'cycle () массив значений для циклического прохождения? - PullRequest
2 голосов
/ 28 сентября 2010

Мне бы хотелось, чтобы метод cycle принимал массив значений, которые я собираю на лету, но, похоже, он интерпретирует его не так, как я надеялся.

(В этом примере это статический массив, но я хочу, чтобы он работал так, чтобы я мог использовать массивы, которые построены по-разному)

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

Это применяет это как класс к каждому элементу:

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

... выглядит так, как будто он вызывает to_s в массиве или что-то в этом роде.

Как я должен это делать?

1 Ответ

5 голосов
/ 28 сентября 2010

cycle принимает несколько аргументов и перебирает их.Вы передаете single аргумент, массив.

Вы можете использовать оператор splat, чтобы изменить массив на следующие аргументы:

cycle(*some_array)

Это будет действоватькак если бы вы сделали:

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

Вместо:

cycle(["one", "two", "three"])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...