【问题标题】:Get models with distinct attribute ActiveRecord获取具有不同属性 ActiveRecord 的模型
【发布时间】:2012-06-29 20:03:14
【问题描述】:

我的数据库中有一堆记录,它们都有相同的标题但不同的位置。一旦我在位置边界内过滤,我想过滤掉具有相同标题的那些。有没有一种 ActiveRecord 方法可以做到这一点?我知道select,但这只会返回标题,我实际上需要整个记录。

所以我有一个有标题的业务。如果我选择给定纬度/经度边界内的所有企业,将返回多个具有相同名称的实例(例如,地铁)。我想将结果限制为 10。

英文:给我十条记录(整个记录,而不仅仅是某些列),其中每个标题在返回的十条中都是唯一的。

【问题讨论】:

  • 你的意思是find_by_location吗?
  • 给定几条具有相同title 的记录,您要选择哪一条?
  • 在这种情况下没关系。其中任何一个(第一个可能是最简单的。)

标签: sql ruby-on-rails ruby activerecord


【解决方案1】:

您可以简单地使用.first,即

Venue.where(name: "Subway").first

如果您需要多个元素,请将参数传递给第一个:

Venue.where(name: "Subway").first(10)

要在某列中为每个不同的值选择一个条目,您可以使用.group("column_name")

Venue.where(some_condition).group("name")

【讨论】:

  • 如何使用 :id 进行设置?我有一个视频索引页,每个视频都属于一个导演。我只想在索引页面上显示每位导演的一个视频。已经尝试了几个小时。任何帮助表示赞赏!
  • @Jackson_Sandland 试试.group(:director_id)(取决于您的董事关系如何命名。
【解决方案2】:

ModelName.where(title: "Building")

如果您提供更具体的问题,我将提供更具体的答案...

【讨论】:

  • 试图更具体。我有多个具有相同标题的记录,但我只希望每个标题名称有一条记录。
猜你喜欢
  • 2016-02-04
  • 2013-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多