在 rails 中使用 reject + 条件过滤数组

Filtering array with reject + conditions in rails

我正在尝试过滤具有多个条件的匹配记录数组,但似乎无法弄清楚,我尝试了很多不同的东西并用谷歌搜索了所有内容,但什么都没有...这是代码:

if @post.last_post?
  @recommendations = @course.recommendations_for_subscriber(subscriber, category, language).first(3)
end

和辅助方法

def recommendations_for_subscriber subscriber, category, language
  course_ids = subscriber.courses.pluck(:id)
  recommendations.reject { |c| course_ids.include? c.id }
end

我想做的是将类别和语言作为条件传递,以便仅在设置相同条件的情况下获得结果。 “.where”不起作用,因为它不能很好地与数组一起使用,而且我似乎无法将它作为拒绝的补充传递进来。如果我们 运行 彼此有任何想法,我们将不胜感激并奖励蛋糕!

我想这会解决您的问题:

def recommendations_for_subscriber subscriber, category, language
  Recommendation.where('courses.id NOT IN(?)', subscriber.courses.pluck(:id))
end