2010-08-22 11 views
0

J'ai un problème simple concernant une boucle dans un contrôleur Rails.Une boucle de contrôleur simple (y compris la carte flash ouverte)

Voici l'exemple de code original, dont le but est de spécifier les données à utiliser dans un graphique flash ouvert (camembert).

#controller 
data_1 = [ 
    OFC2::PieValue.new(:value => 20, :label => 'GroupA', :font_size => 15), 
    OFC2::PieValue.new(:value => 30, :label => 'GroupB', :font_size => 15) 
] 

que je dois faire ceci:

data_1 = [ 
    @groups.each do |group| 
    OFC2::PieValue.new(:value => group.value, :label => group.name, :font_size => 15), 
    end 
] 

Deux questions:

  1. La virgule à la fin de cette ligne pose un problème. La dernière entrée ne peut pas avoir de virgule.
  2. Même lorsque je tente de faire cette simple boucle de travail en contournant temporairement la virgule (comme l'ajout d'un nouveau record après la fin sans une virgule), je recevais des erreurs:

    inattendu « », attente kend (pour la ligne de OFC2)
    inattendu ']', attendant kend (dernière ligne de code ci-dessus)
    kend inattendu, expecting ']' (fin du contrôleur)

Cela me casser les pieds parce qu'il devrait être boucle simple. Que se passe-t-il?

Répondre

1

Essayez peut-être d'emprunter un itinéraire différent.

data_1 = Array.new 

@groups.each do |g| 
    data_1 << OFC2::PieValue.new(:value => g.value, :label => g.name, :font_size => 15) 
end 

Est-ce logique?

+0

C'est fantastique Andy. A travaillé la première fois! Je vous remercie. – sscirrus