Bonjour,

Je souhaiterais afficher des données dans un tableau en HTML de la manière suivante :

Je dispose d'un tableau contenant des tables de hash :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
@personnes = [{"nom" => "toto", "age" => "8", "ville" => " a la ferme"}, {"nom" => "donald", "age" => "40", "ville" => "New York"} ]
Intégration dans la vue :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<table>
  <tr>
       <th>Nom</th>
       <th>Age</th>
       <th>Ville</th>
  </tr>
  <%= @personnes.each do |personne|%>
  <tr>
       <td>personne["nom"]
       <td>personne["age"]
       <td>personne["ville"]
  </tr>
  <% end %>
</table>
Mon problème est le suivant : mon tableau est bien rempli comme il faut, mais en plus du tableau créé, la vue m'affiche le code tableau récupéré du controleur, à savoir : [{"nom" => "toto", "age" => "8", "ville" => " a la ferme"}, {"nom" => "donald", "age" => "40", "ville" => "New York"} ]

Je pense que c'est à cause de l'utilisation du : @personne.each. A mon avis, rails commence à l'interpréter comme un affichage d'une variable et l'affiche, puis il voit l'utilisation de la méthode each et commence à remplir le tableau. Je ne sais pas si ma théorie est juste ou non. Quelqu'un saurait-il comment éviter d'avoir le code du tableau récupéré dans lecontroleur qui s'affiche sur la vue, car ce n'est pas très joli ! Merci


EDIT

C'est bon, j'ai résolu mon problème. j'écris ici ma solution, au cas où quelqu'un en aurait besoin.
j'ai simplement changé la manière de parcourir le tableau :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<table>
  <tr>
       <th>Nom</th>
       <th>Age</th>
       <th>Ville</th>
  </tr>
  <% for personne in @personnes%>
  <tr>
       <td>personne["nom"]
       <td>personne["age"]
       <td>personne["ville"]
  </tr>
  <% end %>
</table>
Notez que dans la nouvelle version de mon "parcours" du tableau, j'ai enlevé le "=" de la balise ruby !

Merci à ceux qui ont pris le temps de lire mon problème, même s'ils n'ont pas su d'où venait l'erreur !