如何从 Rails 的列表中删除重复的国家/地区?



我使用 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

参考

相关内容

最新更新