我的模型projectuser
has_many
activities
和activities
belongs_to
projectuser
。现在我在控制器中有一组@activities
活动,我想获得独特的项目用户。我怎么能这样做?
答案 0 :(得分:2)
如果@activities
是一个简单的ruby集合(例如Array),那么请使用:
Projectuser.where(id: @activities.map(&:projectuser_id).uniq)
但是,如果您的@activities
对象是ActiveRelation(关联调用或查询api调用的结果),您可以执行更高效的查找,如下所示:
Projectuser.joins(:activities).merge(@activities)
它更有效的原因是因为它避免了构建一个id的文字列表,这会在db引擎上变得更加困难。