如何获取对象数组的唯一属性值?

How do I get unique attribute values of an array of objects?

我正在使用 RoR 5。如何 select 对象数组中的唯一属性值?我试过了

attr_values = my_objects.uniq{|r| r.attr_name}

但是 "attr_values" 是与 "my_objects" 相同类型的对象数组。我希望数组是 "r.attr_name."

类型的对象

你的 post 不清楚,但如果 "array" 是 ActiveRecord::Relation,你可以 .distinct.pluck(:attr_name),例如:User.distinct.pluck(:role) => SELECT DISTINCT "users"."role" FROM "users"

如果实际上是一个数组(my_objects.is_a? Array),解法是my_objects.map(&:attr_name).uniq.