在数组列中查找不同的值

时间:2015-07-16 04:52:51

标签: ruby-on-rails ruby postgresql activerecord

我在Rails 4中使用带有ActiveRecord的Postgresql。

我有一个客户模型,其中一列被称为“标签”,它是一个数组列([“sports”,“broadcast”])。

如何从此列中选择所有不同的值?由于我们拥有的客户记录数量,我想避免做任何需要实例化AR对象的事情。所以我不想要这样的东西:

Customer.select(:tags).map(&:tags).flatten.uniq

虽然有效,但会占用太多内存。

当有人向客户添加标签时,我需要这些值来提供建议。希望它有助于防止单词或拼写错误的变化。

提前致谢!

1 个答案:

答案 0 :(得分:3)

您可以使用下面的pluck

Customer.pluck(:tags).flatten.uniq