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

Ruby on rails rails从对象数组中获取关联的唯一对象数组,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,Trip和Alert模型关联如下:Trip有许多警报 我有一个对象,比如@alerts=Alert.all 现在我想从@alerts 我怎样才能做到这一点?您可以尝试以下方法: Trip.where(id: @alerts.map(&:trip_id).uniq) 这: @alerts.map(&:trip_id).uniq 根据您的警报为您提供一组唯一的行程ID 顺便说一句,这为您提供了一个ActiveRecord::Relation,而不是数组您可以在@alerts

Trip
Alert
模型关联如下:Trip
有许多
警报

我有一个对象,比如
@alerts=Alert.all

现在我想从
@alerts


我怎样才能做到这一点?

您可以尝试以下方法:

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

  @alerts.map(&:trip_id).uniq
根据您的警报为您提供一组唯一的行程ID


顺便说一句,这为您提供了一个
ActiveRecord::Relation
,而不是
数组

您可以在
@alerts
上使用
pull
方法,并与
uniq
配对:

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

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

结果将是唯一的
Trip
id的
Array