0

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

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” 不起作用,因为它不适用于数组,我似乎无法将它作为拒绝的补充传递。如果我们遇到彼此,任何想法都会非常感激并得到蛋糕奖励!

4

1 回答 1

0

我想这会解决你的问题:

def recommendations_for_subscriber subscriber, category, language
  Recommendation.where('courses.id NOT IN(?)', subscriber.courses.pluck(:id))
end
于 2015-09-27T16:54:35.470 回答