1. ホーム
  2. ruby-on-rails

[解決済み] Rails: カラムから一意な値を取得する方法

2023-09-01 17:17:34

質問

テーブルのカラムから一意な値を取得するにはどうしたらよいでしょうか。 たとえば、私はこの製品テーブルを持っています。

ID NAME CATEGORY
1 name1 1st_cat
2 name2 2nd_cat
3 name3 1st_cat

ここでは、1st_catと2nd_catの2つの値だけを取得したいと思います。

<%Products.each do |p|%>
<%=p.category%>
<%end%>

どのように解決するのですか?

もう2つの方法です。

Product.select(:category).map(&:category).uniq # Ruby does the work

Product.uniq.pluck(:category) # DB does the work (superior)

について Rails >= 5.1 を使用します。

Product.distinct.pluck(:category) # DB does the work (superior)

...というのは Relation#uniq 非推奨 .