rails从对象数组中获取关联的唯一对象数组

时间:2017-05-16 14:51:02

标签: ruby-on-rails activerecord

TripAlert模式是关联的:旅行has_many提醒

我有一个像@alerts = Alert.all

这样的对象

现在,我想从Array

中找到Trip的唯一@alerts

我该怎么做?

2 个答案:

答案 0 :(得分:1)

您可以pluck使用@alerts方法,与uniq配对:

@alerts.pluck(:trip_id).uniq
  • pluck将返回所有Trip ID的数组。

  • uniq将从数组中删除所有重复的值(即ids)。

结果将是Array个唯一的Trip ID。

答案 1 :(得分:0)

您可以尝试以下方式:

 Trip.where(id: @alerts.map(&:trip_id).uniq)

这:

  @alerts.map(&:trip_id).uniq

根据您的提醒为您提供一系列独特的旅行ID。

顺便说一句,这会为您提供ActiveRecord::Relation,而不是Array