Ruby on rails Rails循环数组不显示重复字符串

Ruby on rails Rails循环数组不显示重复字符串,ruby-on-rails,Ruby On Rails,我在一个id数组中循环,如下所示: <% @tip.horse_ids.each do |i| %> <% @horse = Horse.find(i) %> <%= @horse.race.meeting.racecourse.strip %><br /> <%= @horse.race.time.to_s(:time) %> - <%= @horse.name.strip %><br /> <

我在一个id数组中循环,如下所示:

<% @tip.horse_ids.each do |i| %>
  <% @horse = Horse.find(i) %>
  <%= @horse.race.meeting.racecourse.strip %><br />
  <%= @horse.race.time.to_s(:time) %> - <%= @horse.name.strip %><br />
<% end %>
我只希望Kempton AW在循环中出现一次,第一次也是一样,所以1:30也应该只出现一次,我想删除所有重复的内容。任何帮助都将不胜感激,谢谢

使用uniq

或者更好

<% Horse.where(id: @tip.horse_ids).each do |horse| <%
  <%= horse.race.meeting.racecourse.strip %><br />
<% end %>

向阵列中添加uniq可以解决您的问题

<% @tip.horse_ids.uniq.each do |i| %>
  <% @horse = Horse.find(i) %>
  <%= @horse.race.meeting.racecourse.strip %><br />
  <%= @horse.race.time.to_s(:time) %> - <%= @horse.name.strip %><br />
<% end %>

如果有人有类似的问题,就像我用group_by解决的那样

<% @tip.horses.group_by(&:meeting).each do |meeting, horses| %>
  <%= meeting.racecourse %><br />
  <% horses.each do |horse| %>
    <%= horse.race.race_time %> - <%= horse.name %><br />
  <% end %>
<% end %>
<% @tip.horses.each do |horse| <%
  <%= horse.race.meeting.racecourse.strip %><br />
<% end %>
<% @tip.horse_ids.uniq.each do |i| %>
  <% @horse = Horse.find(i) %>
  <%= @horse.race.meeting.racecourse.strip %><br />
  <%= @horse.race.time.to_s(:time) %> - <%= @horse.name.strip %><br />
<% end %>
<% @tip.horses.group_by(&:meeting).each do |meeting, horses| %>
  <%= meeting.racecourse %><br />
  <% horses.each do |horse| %>
    <%= horse.race.race_time %> - <%= horse.name %><br />
  <% end %>
<% end %>