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