我使用 Ruby on Rails 5.2 和 Mongoid 7.0
如何从列表中删除重复的国家/地区
@badge = @user.places.all
<%= @badge.each do |badge| %>
<%= badge.country %><p>
<% end %>
现在结果:
法国 荷兰 西班牙 荷兰 印度尼西亚
我需要:
法国 荷兰 西班牙 印度尼西亚
我假设徽章不同,但其中一些似乎具有相同的国家/地区。因此,我认为您不能在徽章上调用unique
,而必须在不同国家/地区的列表中调用它:
<% @badge.map(&:country).unique.each do |country| %>
<p><%= country %></p>
<% end %>
根据您的数据库结构,如果您需要在另一个地方使用整个@badges
变量,也可以选择仅从数据库中加载不同的国家/地区列表:
@countries = @user.places.distinct.pluck(:country)
<% @countries.each do |country| %>
<p><%= country %></p>
<% end %>
尝试将第一行替换为:@badge = @user.places.all.uniq
。
参考