J'ai un tableau d'objets, où j'ai les champs suivants: titre, nom e url Mes données: @array = [{id: 1, titre: '123', nom: 123}, {id: 2, titre: ' 123 ', nom: 321}, {id: 3, titre:' 1234 '...
1 réponse
Vous obtenez des entrées en double puisque vous map
ping sur tous les éléments et filtrez le tableau pour chaque élément à l'intérieur du bloc.
Vous pouvez utiliser Enumerable#group_by
pour regrouper les éléments du tableau par title
. Vous pouvez ensuite parcourir les groupes et afficher le titre et les noms de chaque groupe. Notez que j'utilise item[:name]
pour accéder aux valeurs du hachage puisque votre question mentionne un tableau de hachages. Vous devriez le mettre à jour vers item.name
(et d'autres endroits utilisant l'accès par hachage) si vous travaillez avec des objets à la place.
@groups = @array.group_by {|i| i[:title] }
<% @groups.each do |title, items| %>
<h3><%= title %></h3>
<% items.each do |item| %>
<p><%= item[:name] %></p>
<% end %>
<% end %>
De nouvelles questions
ruby-on-rails
Ruby on Rails est un framework d'application web open source à pile complète écrit en Ruby. Il suit le modèle de framework MVC populaire et est connu pour son approche "convention sur configuration" pour le développement d'applications.