首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Rails:从模型中选择不同的值

Rails:从模型中选择不同的值
EN

Stack Overflow用户
提问于 2013-08-01 20:47:41
回答 4查看 72.6K关注 0票数 28

文档:Querying.html#选择特定-字段

明确指出:

代码语言:javascript
运行
复制
query = Client.select(:name).distinct
# => Returns unique names

但是,当我在控制器中尝试这样做时,我会得到以下错误:

代码语言:javascript
运行
复制
undefined method `distinct' for #<ActiveRecord::Relation:0xb2f6f2cc>

为了澄清,我想要不同的名字,比如“乔治”,“布兰登”,而不是客户的实际记录。我遗漏了什么吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-08-01 21:01:05

.distinct选项是为rails 4添加的,这是最新指南所引用的。

Rails 2

如果您仍然在rails 2上,则需要使用:

代码语言:javascript
运行
复制
Client.select('distinct(name)')

Rails 3

如果您在Rails 3上,则需要使用:

代码语言:javascript
运行
复制
Client.select(:name).uniq

如果您查看等效的导轨3节,您可以看到这两个版本之间的差异。

票数 48
EN

Stack Overflow用户

发布于 2019-07-01 15:16:53

有一些办法:

  1. Rails方式: Model.select(:name).distinct
  2. 半钢轨道 Model.select(“models.name上的不同模型.*”) 第二个允许您选择第一个记录唯一的名字,但在整个问题上,不仅仅是名字。
票数 13
EN

Stack Overflow用户

发布于 2016-05-16 07:34:39

如果不希望返回ActiveRecord::关系,只需将名称数组作为字符串,则使用:

代码语言:javascript
运行
复制
Client.distinct.pluck(:name)

若要获得有序的结果集,请执行以下操作:

代码语言:javascript
运行
复制
Client.order(:name).distinct.pluck(:name)
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18004239

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档