文档:Querying.html#选择特定-字段
明确指出:
query = Client.select(:name).distinct
# => Returns unique names
但是,当我在控制器中尝试这样做时,我会得到以下错误:
undefined method `distinct' for #<ActiveRecord::Relation:0xb2f6f2cc>
为了澄清,我想要不同的名字,比如“乔治”,“布兰登”,而不是客户的实际记录。我遗漏了什么吗?
发布于 2013-08-01 21:01:05
.distinct
选项是为rails 4添加的,这是最新指南所引用的。
Rails 2
如果您仍然在rails 2上,则需要使用:
Client.select('distinct(name)')
Rails 3
如果您在Rails 3上,则需要使用:
Client.select(:name).uniq
如果您查看等效的导轨3节,您可以看到这两个版本之间的差异。
发布于 2019-07-01 15:16:53
有一些办法:
发布于 2016-05-16 07:34:39
如果不希望返回ActiveRecord::关系,只需将名称数组作为字符串,则使用:
Client.distinct.pluck(:name)
若要获得有序的结果集,请执行以下操作:
Client.order(:name).distinct.pluck(:name)
https://stackoverflow.com/questions/18004239
复制相似问题