2010-09-28 2 views
2

Je voudrais que la méthode cycle prenne un tableau de valeurs que je compile à la volée, mais il semble ne pas l'interpréter comme je l'aurais espéré.Comment passer à cycle() de Rails un tableau de valeurs à parcourir?

(Dans cet exemple, il est un tableau statique, mais je veux que cela fonctionne pour que je puisse utiliser des tableaux qui sont construits variablement)

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

Cela vaut cela comme une classe à chaque élément:

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

... semble s'appeler to_s sur le tableau ou quelque chose comme ça.

Comment suis-je censé faire cela?

Répondre

5

cycle prend plusieurs arguments et les parcourt. Vous passez un seul argument, un tableau.

Vous pouvez utiliser l'opérateur de floc pour changer le tableau dans ces arguments multiples:

cycle(*some_array) 

Ceci agira comme si vous avez fait:

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

Plutôt que:

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

Brillant. Merci beaucoup d'avoir pris le temps. – doctororange

+0

@doctororange: Pas de soucis, heureux de vous aider. –

Questions connexes